高阶函数:
1高阶函数是对其他函数进行操作的函数,可以将他们作为参数或返回他们;
2简单的来说,高阶函数时一个函数,它接收函数作为参数或将函数作为输出返回;
示例代码:
// 数组求和
var arr = [1,2,3,4,5];
const arr1 = arr.reduce((prev, curr) => {
return prev + curr;
},1);
console.log(arr1);
// 数组去重
var newArr = [1,2,6,4,5,6,3,2,1,4,5];
var myArr = newArr.reduce((prev, curr) => {
if (prev.indexOf(curr) === -1){
prev.push(curr);
}
return prev;
},[]);
console.log(myArr);
flat:
// flat函数中可以传入参数,也可以不传入参数
// 不传参数时,则打平层次为1
// 如果不确定有多少层,可以将Infinity无穷大传入
// 注意node版本的支持
let arr = [1,2,3,4,[5,6]];
var arr1 = arr.flat();
console.log(arr1);
let newArr = [1,2,3,4,[5,6,[7,8]]];
var newArr1 = newArr.flat(Infinity);
console.log(newArr1);
高阶函数的两种形式示例: