JS数组中filter、map、reduce三个函数的使用
2021-09-03 本文已影响0人
LcoderQ
1.filter:过滤
var test = [1, 2, 3, 4, 5];
//数组有一个filter方法,该方法会返回一个满足条件的新数组
//再调用filter方法的时候,其内部又可以接受一个函数作为参数、
//该函数可以接受三个参数,第一个为数组的元素,第二个为元素对应的索引,第三个为数组本身(引用)
//在函数体中可以进行逻辑判断,当返回值为true是,会将该item元素添加到新的数组中
var test2 = test.filter((item, index, array) => {
console.log(item, index, array);
return item % 2 === 0;
});
console.log("使用filter后的test数组:" + test);
console.log("使用filter得到的test2数组:" + test2);
以上代码运行结果为:
1 0 [ 1, 2, 3, 4, 5 ]
2 1 [ 1, 2, 3, 4, 5 ]
3 2 [ 1, 2, 3, 4, 5 ]
4 3 [ 1, 2, 3, 4, 5 ]
5 4 [ 1, 2, 3, 4, 5 ]
使用filter后的test数组:1,2,3,4,5
使用filter得到的test2数组:2,4
2.map:映射
var test = [1, 2, 3, 4, 5];
var test3 = test.map((item, index, array) => {
return item + 1;
});
console.log(test3);
//输出结果为[ 2, 3, 4, 5, 6 ]
3.reduce
//reduce函数可以接受接受两个参数,一个为函数,一个为初始值,
//如下0就是传入的一个初始值
//在回调函数中,可以接受四个参数,第一个参数第一次的值为传入的初始值即0,之后每次循环的值为每次return的值
var test = [1, 2, 3, 4, 5];
var total = 0;
total = test.reduce((prevalue, item) => {
return item + prevalue;
}, 0);
console.log(total);
//输出结果为15