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)