高阶函数:
    1高阶函数是对其他函数进行操作的函数,可以将他们作为参数或返回他们;
    2简单的来说,高阶函数时一个函数,它接收函数作为参数或将函数作为输出返回;

    示例代码:

    1. // 数组求和
    2. var arr = [1,2,3,4,5];
    3. const arr1 = arr.reduce((prev, curr) => {
    4. return prev + curr;
    5. },1);
    6. console.log(arr1);
    7. // 数组去重
    8. var newArr = [1,2,6,4,5,6,3,2,1,4,5];
    9. var myArr = newArr.reduce((prev, curr) => {
    10. if (prev.indexOf(curr) === -1){
    11. prev.push(curr);
    12. }
    13. return prev;
    14. },[]);
    15. console.log(myArr);

    flat:

    1. // flat函数中可以传入参数,也可以不传入参数
    2. // 不传参数时,则打平层次为1
    3. // 如果不确定有多少层,可以将Infinity无穷大传入
    4. // 注意node版本的支持
    5. let arr = [1,2,3,4,[5,6]];
    6. var arr1 = arr.flat();
    7. console.log(arr1);
    8. let newArr = [1,2,3,4,[5,6,[7,8]]];
    9. var newArr1 = newArr.flat(Infinity);
    10. console.log(newArr1);

    高阶函数的两种形式示例:
    image.png image.png