在多维中对两个值进行排序

时间:2014-06-06 08:18:59

标签: javascript arrays sorting multidimensional-array

我正在研究一些对多维数组有很多功能的功能。我想要做的是按第一个值排序,然后按第二个值排序,同时保持第一个值排序。见例:

arrayToSort = [[1,5],[1,3],[1,2],[1,6],[2,6],[1,9],[1,11]];

I would like to sort this so it returns

[[1,2],[1,3],[1,5],[1,6],[1,9],[1,11],[2,6]];

我创建了一个函数,使用下面的函数按第一个值对数组进行排序,但我不确定我是如何实现上述目的的。

function sortOne(cards){
    arr = cards.sort(function(a,b) {
        return a[0] > b[0];
    });
    return arr;
}

*来源:How to sort 2 dimensional array by column value?

1 个答案:

答案 0 :(得分:4)

按第一个值排序,然后按第二个值排序:

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

这只是两个(standard number)比较,由||运算符链接,当第一个0时返回右操作数。

请参阅here以获取处理任意长度数组的通用比较函数,而不仅仅是元组。