filter(过滤) : 用于把Array的某些元素过滤掉,然后返回剩下的元素
- filter中的回调函数有一个要求: 必须返回一个boolean值
- true: 当返回true时, 函数内部会自动将这次回调的n加入到新的数组中
- false: 当返回false时, 函数内部会过滤掉这次的n
map(映射) : 返回一个新的数组,数组中的元素为原始数组调用函数处理后的值
- 不会对空数组进行检测
- 不会改变原数组
- function(currentValue, index, arr):为一个函数,数组中的每个元素都会执行这个函数。参数:
- currentValue:必须。当前元素的的值。
- index:可选。当前元素的索引。
- arr:可选。当前元素属于的数组对象。
reduce(汇总): reduce作用对数组中所有的内容进行汇总
- reduce(callback,initiaValue)会传入两个变量,回调函数(callback)和初始值(initValue)
- 回调函数可以传入prevalue和当前需要遍历的数组
- 当没有传入初始值时,prevalue是从数组中第一个元素开始的,next是第二个函数。如果有传入初始值,第一个prevalue将是初始值,next将是数组中的第一个元素。
const nums = [10, 20, 111, 222, 444, 40, 50]
1.filter函数的使用
let newNums = nums.filter(function (n) {
return n < 100
})
2.map函数的使用
let new2Nums = newNums.map(function (n) {
return n * 2
})
3.reduce函数的使用
let total = new2Nums.reduce(function (preValue, n) {
return preValue + n
}, 0)
综合运用:
const nums = [10, 20, 111, 222, 444, 40, 50];
let total = nums.filter(n => n < 100).map(n => n * 2).reduce((pre, n) => pre + n);
console.log(total);