ES6学习 (二)ES6数组方法

ES6中新增的数组知识

  • JSON数组格式转换

           JSON的数组格式就是为了前端快速的把JSON转换成数组的一种格式,跟普通的JSON对比是在最后多了一个length属性,这种特殊的json格式都可以使用ES6的语法转变成数组。在ES6中绝大部分的Array操作都存在于Array对象里。我们就用Array.from(xxx)来进行转换,把上边的JSON代码转换成数组,并打印在控制台。

        let  json = {
            '0': 'www',
            '1': 'baidu',
            '2': 'com',
            length:3
        }
        let arr=Array.from(json);    
        console.log(arr)            //输出长度为3的数组
  • Array.of()方法

           它可以把一堆文本或者变量转换成数组 

        let arr =Array.of(3,4,5,6);
        console.log(arr);                   // [3, 4, 5, 6]

        let arr =Array.of('a','b','c');
        console.log(arr);                   // ["a", "b", "c"]
  •  find( )实例方法     

          所谓的实例方法就是并不是以Array对象开始的,而是必须有一个已经存在的数组,然后使用的方法,这就是实例方法。这里的find方法是从数组中查找。在find方法中我们需要传入一个匿名函数,函数需要传入三个参数:

  • value:表示当前查找的值。
  • index:表示当前查找的数组索引。
  • arr:表示当前数组。
        let arr=[1,2,3,4,5,6,7,8,9];
        console.log(arr.find(function(value,index,arr){           // 6 
            return value > 5;
        }))                    

           返回第一个符合条件的值,如果找不到会显示undefined。

  • fill( )实例方法

         fill()也是一个实例方法,它的作用是把数组进行填充,它接收三个参数,第一个参数是填充的变量,第二个是开始填充的位置,第三个是填充到的位置(不包括此位置)。

        let arr2=[0,1,2,3,4,5];
        arr2.fill('apple',1,3);
        console.log(arr2);           //  [0, "apple", "apple", 3, 4, 5]
  • for…of循环
        let arr=['apple','banana','orange']
        for (let item of arr){
            console.log(item);                //   apple banana orange
        }                               

          ① for…of数组索引:    用keys()实例方法

        let arr=['apple','orange','banana']
        for (let index of arr.keys()){
            console.log(index);               // 0 1 2
        } 

         ② 同时输出数组的内容和索引:用entries()实例方法

        let arr=['apple','orange','banana']
        for (let [index,val] of arr.entries()){
            console.log(index+':'+val);                // 0:apple 1:orange 2:banana
        }

         ③  entries()实例方式生成的是Iterator形式的数组,这种形式的好处就是可以在我们需要时用next()手动跳转到下一个值。

        let arr=['apple','orange','banana']
        let list=arr.entries();
        console.log(list.next().value);      // [0, "apple"]
        console.log(list.next().value);      // [1, "orange"]
        console.log(list.next().value);      // [2, "banana"]
  • in的用法 

             ①  对象判断

        let obj={
            a:'jspang',
            b:'技术胖'
        }
        console.log('a' in obj);  //true

              ②  数组判断

            看一下ES5判断的弊端,以前会使用length属性进行判断,为0表示没有数组元素。但是这并不准确,或者说真实开发中有弊端。

        let arr=[,,,,,];
        console.log(arr.length); //5

上边的代码输出了5,但是数组中其实全是空值,这是一个坑。那用ES6的in就可以解决这个问题(0指的是数组下标位置是否为空。)

        let arr=[,,,,,];
        console.log(0 in arr);         //false
        let arr1=['zhou','daniel'];
        console.log(0 in arr1);        // true
  • 数组的遍历方法

         ①   forEach

        let arr=['apple','orange','','banana']
        arr.forEach((val,index)=>console.log(index,val));      // 0 "apple"
                                                               // 1 "orange"
                                                               // 2 ""
                                                               // 3 "banana"

        ②    filter

let arr=['apple','orange','banana']
arr.filter(x=>console.log(x));           // apple orange banana

       ③    some

       ④    map

        let arr=['apple','orange','banana']
        console.log(arr.map(x=>'fruit'));              //  ["fruit", "fruit", "fruit"]
  • join()方法
        let arr=['apple','orange','banana']
        console.log(arr.join('|'));             // apple|orange|banana
  • toString()方法
            let arr=['apple','orange','banana']
            console.log(arr.toString());          // apple,orange,banana

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值