什么是高阶函数,常见的高阶函数 有哪些?

  如果一个函数符合下面2个 规范中任何一个,那该函数就是高阶函数

    1、若a函数,接收的参数是一个函数,那么a就可以称之为高阶函数

    2、若a函数,调用的返回值依然是一个函数,那么a就可以称之为高阶函数。

 

常见的高阶函数有:Promise、setTimeout、arr.map()、filter、reduce等等

//map:一般用于操作数组集合,遍历操作用
   
    function f(x){
        return x*x
    }
    let arr=[1,2,3,4,5];
    let newArr=arr.map(f);
    console.log(newArr);//[1, 4, 9, 16, 25]

//reduce:数组元素计算。
//如:这是数组求和,将元素全部加起来,相当于1+2+3+4+5。
let arr=[1,2,3,4,5];
let num=arr.reduce(function(x,y){
    return x+y
})
console.log(num);//15


//筛选掉空字符串、null、undefined:
//trim()是去掉首尾的空格 
let arr=[1,0,'2','',0,'3',null,undefined,'']
let r=arr.filter(function(s){
    if(s!=null&&s!=undefined){
        if((typeof s=="string"&&s.trim()!='')||(typeof s=='number')){
            return true;
        }else{
            return false;
        }
    }
})
console.log(r);

//sort:数组重排序。返回同一个数组对象。根据ascii码进行排序。
//x-y:从小到大
//y-x:从大到小
//重排序的数组还是原来的数组。

let arr =[5,23,7,2,4,5,6];
let  newArr1 = arr.sort(function(x,y){
    return x - y;//从小到大
})
console.log(newArr1);//[2, 4, 5, 5, 6, 7, 23]
let  newArr2=arr.sort(function(x,y){
    return y-x;//从大到小
})
console.log(newArr2);// [23, 7, 6, 5, 5, 4, 2]
console.log(arr===newArr1,arr===newArr2);//true true

你可能感兴趣的:(JavaScript,前端,javascript)