数组方法
2019-09-20 本文已影响0人
貓咪是大王
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()的区别
- arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
- arr.forEach() 中没有return, 而arr.map() 有return