Leo

一个简单的使数组正确排序的方法

字数统计: 203阅读时长: 1 min
2015/04/02 Share

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var arr = [10,23,44,101,45,400,22];

arr.sort();

结果:[10, 101, 22, 23, 400, 44, 45]

很明显,sort不关注数组中的内容是数字还是字母 他仅仅按照字母表的顺序来进行排序 卧槽~~这不科学。 不是我们想要的结果

不过我们可以给sort传一个对象,来解决:

function sorter(a,b){

return a - b;
}

var arr = [10,23,44,101,45,400,22];

arr.sort(sorter);

结果:[10, 22, 23, 44, 45, 101, 400]

这样就可以得到我们想要的排序了。

函数sorter接收两个参数,返回一个数值

如果这个值大于0,说明第一个参数大于第二个参数

如果返回0,则表示两个参数相等

如果返回小于0,则第一个参数比第二个参数小。