美文网首页
ES6和ES5数组方法学习比较

ES6和ES5数组方法学习比较

作者: 洋洋袁 | 来源:发表于2018-04-10 10:15 被阅读0次

    1. find(es6)和map,filter

    const arr = [1,2,3,4,5,6,7];

    let res1 = arr.find(function(v,i,arr){

        if(v>3)return v;

    });

    console.log(res1);//4

    let res2 = arr.filter(function(v){

    if(v>3)return v;

    });

    console.log(res2);//4567

    let res3 = arr.map(function(v){

    if(v>3)return v;

    });

    console.log(res3);//undefined undefined undefined 4567

    find是返回第一个符合条件的元素,findIndex是返回第一个符合条件的元素的索引,filter是返回所有符合条件的元素,map返回所有的,但是不符合条件的是undefined;都不会改变原数组;

    2. includes和indexOf

    const arr = [1,2,3,4,5,6,7];

    console.log(arr.indexOf(2));//1

    console.log(arr.indexOf(8));//-1

    console.log(arr.includes(2));//true

    includes返回的是布尔值,indexOf返回的是符合条件的第一个值的索引

    3. arr.keys 表示的是数组索引的集合; arr.values 表示的是数组值的集合

        arr.entries表示的是数组的键值对的结合(均属于es6)

    4. fill(es6)

    const arr = [1,2,3,4,5,6];

    //arr.fill(3);//[3,3,3,3,3,3]将所有的元素填充为3

    //arr.fill(3,1);//[1,3,3,3,3,3] 从第二个开始填充

    arr.fill(3,1,4);//[1, 3, 3, 3, 5, 6]

    5. Array.of(es6)根据参数返回一个数组

    Array.of('w','i','r')//["w", "i", "r"]返回数组

    Array.of(['w','o'])//[['w','o']]返回嵌套数组

    Array.of(undefined)//[undefined]依然返回数组

    Array.of()//[]返回一个空数组

    该方法返回结果只与参数的数量有关,与参数类型无关;

    6.copyWithin(start,startInd,endInd);

    复制某一段代码到第一个参数的位置,很诡异,而且感觉没什么用

    文档参考

    7. Array.from()

    将一个带有length属性的对象,转换为数组,可以是字符串或者HTMLDOM伪数组,带有length属性的普通对象等

    相关文章

      网友评论

          本文标题:ES6和ES5数组方法学习比较

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