关于如何给数字排序

关于给数字排序,大家应该都用过原生JS里的sort()方法;只需要把需要排序的数据添加到一个数组里,然后使用sort()方法即可,如:

var arr = [ 0,1,2,3,4,10 ];

arr.sort();

打印一下结果 console.log(arr);  -->  [0,1,10,2,3,4,]

可以发现此方法只是把数组内数据的首字按大小排序了,并不是我们想要的结果,

如果想按照数字大小排序,可以给此方法传一个参数;

function sortNum ( a,b) {

     return a-b;   //若需要从大到小排序,将a-b改为b-a;

}

arr.sort( sortNum );//将函数名作为参数传入即可;

打印结果为: console.log(arr);  -->  [0,1,2,3,4,10];

拓展:

var arr1 = [ a:0,b:1,c:2,d:3,e:4,f:10 ];

这种数组如何排序呢?

刚开始我想的是arr[1].sort( sortNum );

后来发现是不行的;

于是把参数函数改成这样:

function sortNum1 ( a,b) {

     return a[1]-b[1];  

}

arr1.sort( sortNum1 );

发现,可以了。

原文地址:https://www.cnblogs.com/ricoliu/p/5881658.html