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']
感谢廖大大