高阶函数—map、reduce、sort

1.一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

2.map函数是处理数组的函数,可以将数组一个个传入函数中进行处理并将结果返回一个新的数组

var arr=[1,2,3];
function add2(x){
  return x+2;
}
arr.map(add2);//[3, 4, 5]

3.reduce函数,也是处理数组的函数,函数接收两个参数并将处理结果与下一位数据进行运算,就像累加效果一样

var arr=[1,2,3];
arr.reduce(function(x,y){return x+y});//6

4.sort()方法是按照ASCII码进行比较,x<y,返回-1,x>y,返回1,x==y返回0。sort并不关注比较的过程只根据返回的结果来排序,可以传入比较函数来自定义比较方法

var arr=[1,10,100,2,3];
arr.sort();//[1, 10, 100, 2, 3]
var arr=[1,10,100,2,3];
arr.sort(function(x,y){
   if(x>y){
     return 1;
}else if(x<y){
      return -1;
}else{
   return 0;
}
})//[1, 2, 3, 10, 100]

以前一直以为可以直接用sort()方法来排序数字数组呢

 5.sort方法排序时,会有大小写之分,小写字母a的ASCII码在大写字母之后,要比较带字母的字符串时,直接忽略大小的方法超棒

var arr = ['Google', 'apple', 'Microsoft'];
arr.sort(function (s1, s2) {
    x1 = s1.toUpperCase();
    x2 = s2.toUpperCase();
    if (x1 < x2) {
        return -1;
    }
    if (x1 > x2) {
        return 1;
    }
    return 0;
}); // ['apple', 'Google', 'Microsoft']  

感谢廖大大  

  

 

原文地址:https://www.cnblogs.com/Anne3/p/7115540.html