JavaScript字符串、数组操作

作者: 不要和我名字一样 | 来源:发表于2017-08-17 10:57 被阅读65次

    ES6语法引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

    padStart()

       let str = '123';
       str = str.padStart('5', 'aa');
       console.log(str);//str:aa123
    

    padEnd()

       let str = '123';
       str = str.padEnd('5', 'aa');
       console.log(str);//str:123aa
    

    上面代码中,padStartpadEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

    • 如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
    • 如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
    • 如果省略第二个参数,默认使用空格补全长度。
    • 另一个用途是提示字符串格式。
            let str = '12';
            str = str. padStart(10, 'YYYY-MM-DD');
            console.log(str);//str:YYYY-MM-12
    

    模板字符串

    在之前拼接字符串的时候通常都这样写:

    $('#result').append(
     'There are <b>' + basket.count + '</b> ' +
     'items in your basket, ' +
     '<em>' + basket.onSale +
     '</em> are on sale!'
    );
    

    有了模板字符串之后使用``(反引号)这个符号可以多行拼接:

    $('#result').append(`
      There are <b>${basket.count}</b> items
       in your basket, <em>${basket.onSale}</em>
      are on sale!
    `);
    

    数组

    数组的遍历:forEach,for of,map,

    • forEach遍历数组:
       const arr = [120,110,28,9,7,5];
         arr.forEach((item,index)=>{
             console.log(`forEach遍历第${index}个数:${item}`);
         });
    
    image.png
    • map遍历数组
     const arr = [120,110,28,9,7,5];
      arr.map((item,index)=>{
             console.log(`map遍历第${index}个数:${item}`)
            });
    
    image.png
    • for of遍历数组
     const arr = [120,110,28,9,7,5];
      for (item of arr){
             console.log(item);
      //输出120,110,28,9,7,5
      }
    
    • for of 遍历字符串
       const str = 'hello';
       for (item of str){
             console.log(item);
         }
    //输出h,e,l,l,o
    
    • filter的使用
    //使用filter过滤特定条件的数字组成新的数组
            const arr = [120,110,28,9,7,5];
            let arr1 = arr.filter((item)=>{
                return item>100
            });
            console.log(arr1)
    //输出 120,110
    
    • reduce的使用
    //让数组中前项和后项做某种计算,并累计最终值
       const arr = [120,110,28,9,7,5];
         arr.reduce((prev,next)=>{
            console.log(prev+next)
         });
    //输出230
    
    • every的使用
    //检测数组中每一项是否满足条件
         const arr = [120,110,28,9,7,5];
         const result = arr.every((item)=>{
             return item>4
         });
         console.log(result);
    //返回结果为`true`。只有全部为true才可以
    
    • some 的使用
    //检测数组中是否有些项满足条件
        const arr = [120,110,28,9,7,5];
         const result1 = arr.some((item)=>{
             return item>40
         });
         console.log(result1);
    //返回结果为`true`。只要满足一个即为true。
    

    数组去重

    • Set + Array.from() 数组去重
            let arr = [12,13,12,11,0];
            let arr1 = Array.from(new Set(arr));
            console.log(arr1);//输出:12,13,11,0
    
    • …[拓展运算符] + Set 数组去重
            let arr = [12,13,12,11,0];
            let arr1 = [...new Set(arr)];
            console.log(arr1);
    

    日期格式化:时间戳转化为日期

       // 格式化时间  时间戳=>日期
        const timestamp = '1425553097';//秒数
        const d = new Date(timestamp * 1000);    //根据时间戳生成的时间对象
        const date = `当前时间:${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()} ${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}`;
        console.log(date);
    

    相关文章

      网友评论

      本文标题:JavaScript字符串、数组操作

      本文链接:https://www.haomeiwen.com/subject/axsgrxtx.html