javascript高阶函数sort()实例讲解
程序员文章站
2022-05-17 14:51:23
相信大家对排序函数sort()一定很熟悉,但是在javascript中sort()有一些不一样。
例如:
var numarr = [12,20,13,5];
numar...
相信大家对排序函数sort()一定很熟悉,但是在javascript中sort()有一些不一样。
例如:
var numarr = [12,20,13,5]; numarr.sort(); alert(numarr);
大家可以试一试,结果是10,13,20,5,为什么会出现这样的结果呢,原因是在javascript中sort()函数是根据元素的ascii码来排序的,也就是说会将元素先转换成string后再排序。
那么用这个函数不是明摆着往坑里跳吗,不是的,sort()作为一个高阶函数,它可以接受一个函数来自定义排序。
如果我们要对数组排序,我们可以这样写:
var numarr = [10,13,20,5]; numarr.sort(function(x,y){ if(xy){return 1} });
在匿名函数中两个参数的关系是下面这样的:
x < y:在排序后的数组中x应该在y的前面,则返回一个小于0的数
x = y:返回0;
x > y:在排序后x应该在y的后面,则返回一个大于0的数。
所以不难看出上面的代码是将数组升序排列,那么降序排列就应该这样写:
var numarr = [10,13,20,5]; numarr.sort(function(x,y){ if(xy){return -1} });
上一篇: 哈巴狗
下一篇: 关于学习ASP和编程的28个观点