让前端飞

数组方法

2019-09-20  本文已影响0人  貓咪是大王

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

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

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

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)
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 --原数组

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

上一篇下一篇

猜你喜欢

热点阅读