今天看啥  ›  专栏  ›  貓咪是大王

ES6数组方法

貓咪是大王  · 简书  ·  · 2019-09-20 17:12

1.map映射(一个对一个遍历数组)有return 返回一个新数组

用法:arr.map(callback)
callback的参数:

value --当前索引的值
index --索引
array --原数组

  • 例如:将数组中的每一项乘以2,并输出新数组
let arr = [10,8,9,5];
let result=arr.map((value,index,array) => {
    console.log(`value:${value}    index:${index}     array:${array}`)
    return value*2;
})
alert(result);
结果

结果

2.reduce 汇总

用法:arr.reduce(callback, initialValue)
callback的参数:

preValue 必选 --上一次调用回调返回的值,或者是提供的初始值(initialValue)
curValue 必选 --数组中当前被处理的数组项
index 可选 --当前数组项在数组中的索引值
array 可选 --原数组

initialValue: 可选 --初始值
  • 例如:计算下面数组的平均值
let arr=[66,99,33,51,3,6];
let result = arr.reduce((preValue, curValue ,index) => {
    if(index != arr.length-1){//不是最后一次,则把每次拿到的数累加
        return preValue +  curValue ;
    }else{
        return (preValue +  curValue )/arr.length;//最后一次把每次拿到的数除以数组长度求出平均值
    }
})
console.log(result);
结果

回调函数第一次执行时,preValue 和 curValue 可以是一个值,如果 initialValue 在调用 reduce() 时被提供,那么第一个 preValue 等于 initialValue ,并且curValue 等于数组中的第一个值;如果initialValue 未被提供,那么preValue 等于数组中的第一个值.

3.filter过滤器,过滤数组,返回一个满足要求的数组

用法:arr.filter(callback)
  • 例如:返回下面数组中能被3整除的数
let arr = [33,66,11,44,66,99,125];
let result = arr.filter(item => item%3==0 );
console.log(result);
结果

4.forEach循环(迭代),遍历数组,无return

用法:arr.forEach(callback)
callback的参数:

value --当前索引的值
index --索引
array --原数组

  • 例如:将数组中的每一项乘以2
var arr = [11,22,33,44,55];
arr.forEach((value,index,array) => {
    value = value*2;
    console.log(`value:${value} index:${index} array:${array}`);
})
console.log(arr);
结果
总结:arr.forEach()和arr.map()的区别
  1. arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
  2. arr.forEach() 中没有return, 而arr.map() 有return

感谢: https://www.cnblogs.com/sqh17/p/8529401.html




原文地址:访问原文地址
快照地址: 访问文章快照