六个数组迭代归并方法总结

  • 第一个 every 方法

    //返回值为Boolean类型,当数组中所有值迭代时都返回true时,该方法才返回true
    let arr5 = [3,4,5,6,7,8];
    let result8 = arr5.every(item => item > 2);
    console.log(result8);//这里返回true

  • 第二个 some 方法

    //和every对应,some方法,是当数组中只要有一个值在迭代时返回true,该方法就返回true
    let result9 = arr5.some(item => item > 7);
    console.log(result9);//这里也将返回true

  • 第三个 filter 方法(过滤)

    //顾名思义,该方法就是过滤掉原数组中的一些元素,留下一些元素,返回一个新的数组
    let arr3 = [1,2,3,5,6,7,8,9];
    let result6 = arr3.filter(function(item,index,arr) {
    return item%3 === 0;
    });
    console.log(result6);//返回的数组的元素都是能被3整除的
    //同样的以上代码可以用箭头函数来代替
    let result7 = arr3.filter(item => item%3 === 0);//看起来简洁多了
    console.log(result7);

  • 第四个 map 方法 (映射,也就是一对一,一进一出)

    //map 叫做映射或者迭代,对数组里面的元素进行相同的操作再返回一个结果数组
    //结果数组的length和原数组的length相等
    let arr1 = [12,44,55,64,77,88,99];
    let result1 = arr1.map(function(item,index,arr) {return item > 60 ? ‘及格’ : 不及格’;});
    console.log(result1);
    //使用箭头函数配合迭代方法,和上面的效果是一样的,但是看起来要简洁一些
    let result2 = arr1.map(item=>item > 60 ? ‘及格’ : ‘不及格’);
    console.log(result2);

  • 第五个 forEach 方法(普通的循环迭代)

    let arr4 = [1,2,3,4,5];
    arr4.forEach((item,index,arr) => {console.log(index + “:” + item);});

  • 第六个 reduce 方法(归并或叫做汇总 多个进去出来一个)

    //两个参数:第一个是迭代的函数
    // 第二个为可选参数,迭代的初始值,如果没有传该值,则以数组的第一个元素为初始值(迭代次数为数组length-1),如果传了初始值则迭代次数为数组的length
    let result3 = arr1.reduce(function(pre,curr,index,arr) {return pre + curr;},1000);
    console.log(result3);
    //同理的,使用箭头函数配合可以达到result3同样的效果
    let result4 = arr1.reduce((pre,curr,index,arr) => curr + pre,1000);
    console.log(result4);

    //例子:利用reduce求取平均值,最后一次求和并且 求 平均,不是最后一次,就只是求和而已
    let arr2 = [1,2,3,4,5,6,7,8,9,10];
    let result5 = arr2.reduce((pre,curr,index,arr) => (index === (arr2.length - 1) ? (pre + curr) / arr2.length : pre + curr);