JavaScript里面,数组是array,有一个方法sort,使用时需要定义判断函数,写成:
array1.sort(function(a,b){ return a-b; });
简单例子:
var a= [1,3,2]; console.log(a.sort(function(a,b){ return a-b; }));
输出
Array(3) [ 1, 2, 3 ]
那么下面对二维数组排序。如果我想对二维数组的第2列进行排序,怎么办?
首先得确保这个数组每一个元素都有第2列,就是每一个元素都应该是一个数组,并且至少有2个元素。在保证这个前提的基础上,我们就好写了:
array1.sort(function(a,b){ return a[1]-b[1]; });
将第2列的相减结果返回。那么,这里如果a[1]-b[1]是小于零的话,就不交换两个数的位置。
var da= [[1,4],[2,3],[1,3],[4,1],[5,7],[4,2]]; da; 0: (2) [1, 4] 1: (2) [2, 3] 2: (2) [1, 3] 3: (2) [4, 1] 4: (2) [5, 7] 5: (2) [4, 2] length: 6 __proto__: Array(0) da.sort(function(a,b){ return a[1]-b[1]; }); 0: (2) [4, 1] 1: (2) [4, 2] 2: (2) [2, 3] 3: (2) [1, 3] 4: (2) [1, 4] 5: (2) [5, 7]
此时,da本身也变成了排序后的顺序。
da;
0: (2) [4, 1] 1: (2) [4, 2] 2: (2) [2, 3] 3: (2) [1, 3] 4: (2) [1, 4] 5: (2) [5, 7] length: 6 __proto__: Array(0)