1.filter函数
2.map函数
3.reduce函数
了解JavaScript中高阶函数的使用开发可以更加简洁
案例
首先定义一个数组:
const nums = [50, 20, 101, 100, 10, 200, 33, 22]
完成三个需求:
1.取出所有小于100的数字
2.将取出的数进行 乘 2 转化
3.将转化后的所有数字相加,得到最终的结果
filter函数
解决需求1:
向filter函数传入一个带参数的方法,函数内部会创建一个数组,根据返回的布尔类型的值,把方法中满足条件/返回值为true的加入数组
1
2
3
4
| let newNums = nums.filter(function (n) {
return n < 100
})
console.log(newNums);
|
执行结果:
[ 50, 20, 10, 33, 22 ]
map函数
解决需求2:
map函数对数组中所有内容进行转化
1
2
3
4
| let new2Nums = newNums.map(function (n) {
return n * 2
})
console.log(new2Nums);
|
执行结果:
[ 100, 40, 20, 66, 44 ]
reduce函数的使用
解决需求3:
reduce函数的作用对数组中所有的内容进行汇总
1
2
3
4
| let final = new2Nums.reduce(function (preValue, n) { //preValue参数表示上一个数
return preValue + n
}, 0) //这里的0表示reduce函数的初始值/preValue的初始值
console.log(final);
|
执行结果:
270
总结
1
2
3
4
5
6
7
8
| let final = nums.filter(function (n) {
return n < 100
}).map(function (n) {
return n * 2
}).reduce(function (prevValue, n) {
return prevValue + n
}, 0)
console.log(final);
|
结果同样为:
270
或者使用箭头函数
1
2
| let final = nums.filter(n => n < 100).map(n => n * 2).reduce((pre, n) => pre + n);
console.log(final);
|
这样可以一行得到结果,结果同样正确。