记录一下高阶函数的使用;
三个高阶函数的求值;
一个有趣的题目,很好玩的,可以慢慢拆解下
const num1=[1231,10,132,12,12,12,5445,55];
let sum=num1.filter(n=> n<100).map(n=>n*2).reduce((pre,n)=>pre+n ,0)
console.log(sum);
1.filter():
其中包含多个个循环,可以方便过滤数组,条件求值
// const num1=["12","123","158","54","78","88"];
const num1=[1231,10,132,12,12,12,5445,55];
// 高阶函数的使用 filter()
let Newnum= num1.filter((n)=>{
return n<100;
});
console.log(Newnum);
分别对应两个结果;
结果一:
[ '12', '54', '78', '88' ]
结果二:
[ 10, 12, 12, 12, 55 ]
思考:
- 根据这个特性,可以实现数组的拷贝, 只要将回调函数改成
n=> true
,
2.map();
对数组进行***整体***变换
const num1=["12","123","158","54","78","88"];
// const num1=[1231,10,132,12,12,12,5445,55];
// map的使用
let Newnum1= num1.map((n)=>{
return n*2;
});
console.log(Newnum1);
结果一: 变成了一个数组
[ 24, 246, 316, 108, 156, 176 ]
结果二:
[ 2462, 20, 264, 24, 24, 24, 10890, 110 ]
3.reduce();
可以对数组求和,等拼接 ,传入一个回调函数
第一个值为初始 preValue
的传入;例如 0
;
n=[20,40,80,100];
n.reduce( (preValue,n)=>{
return 100; //转入的值
},0)
例子:
// const num1=["12","123","158","54","78","88"];
const num1=[1231,10,132,12,12,12,5445,55];
let Newnum3= num1.reduce((preValue,n)=>{
return preValue+n;
},0);
console.log(Newnum3);
结果一:(简单的拼接)
012123158547888
结果二:
6909