从JavaScript二维数组排序说开去(1)

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;

  1. 0: (2) [1, 4]
  2. 1: (2) [2, 3]
  3. 2: (2) [1, 3]
  4. 3: (2) [4, 1]
  5. 4: (2) [5, 7]
  6. 5: (2) [4, 2]
  7. length: 6
  8. __proto__: Array(0)

da.sort(function(a,b){
            return a[1]-b[1];
        });

  1. 0: (2) [4, 1]
  2. 1: (2) [4, 2]
  3. 2: (2) [2, 3]
  4. 3: (2) [1, 3]
  5. 4: (2) [1, 4]
  6. 5: (2) [5, 7]

此时,da本身也变成了排序后的顺序。

da;

  1. 0: (2) [4, 1]
  2. 1: (2) [4, 2]
  3. 2: (2) [2, 3]
  4. 3: (2) [1, 3]
  5. 4: (2) [1, 4]
  6. 5: (2) [5, 7]
  7. length: 6
  8. __proto__: Array(0)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值