文章目录
一 filter的使用
二map的使用
三reduce的使用
需求:
1,取出数组 [10, 20, 111, 222, 444, 40, 50] 中所有小于100的数字(用filter完成)
2,将所有小于100的数字全部乘以2(用map完成)
3,将所有乘以2的数字相加,得到最终的结果(用reduce完成)
提示:
filter的回调函数有一个要求: 必须要返回一个boolean值,当返回的值为true时,函数内部会自动将这次回调的n加入到新的数组中,当返回的值为false时,函数内部会过滤掉这次的n
一 filter的使用
let nums = [10, 20, 111, 222, 444, 40, 50]
let newNums = nums.filter(n=> {
return n < 100
})
console.log(newNums);
二map的使用
let new2Nums = newNums.map(n => {
return n * 2
})
console.log(new2Nums, 'new2Nums')
三reduce的使用
let total = new2Nums.reduce((pre, n) => {
return pre + n
}, 0)
console.log(total, 'total')
总结
用一步直接完成计算结果
let totalTwo = nums.filter(n => {
return n < 100
}).map(n => {
return n * 2
}).reduce((pre, n) => {
return pre + n
}, 0)
console.log(totalTwo, 'totaltwo');
或者可以这样写
let totalThree = nums.filter(n => n < 100).map(n => n * 2).reduce((pre, n) => pre + n)
console.log(totalThree, 'totalThree');