-1

我想使用每个子数组中的第一个元素对以下数组进行排序:

lst = [[1, 2], [5, 4], [4, 9], [9, 1], [2,2]]

我想对这个列表进行排序,使其看起来像这样:

srt_lst = [[1, 2], [2,2], [4, 9], [5, 4], [9, 1]];

我怎样才能在纯javascript中做到这一点?(没有外部库、下划线等?)

4

1 回答 1

0

Array.sort 方法将比较函数作为可选参数,

您可以像这样指定一个:

function compare(a, b) { .... }

所以使用匿名函数你可以这样做:

lst.sort(function(a,b) {
    if (a[0] < b[0]) return -1;
    if (b[0] < a[0]) return 1;

    return 0;
});

注意:虽然 sort 返回排序后的数组,但它也会作用于您正在运行该方法的数组,因此如果您需要保持原始lst数组的完整和原始顺序,这是值得牢记的,您可能必须使执行排序操作之前的克隆。

于 2013-10-11T14:34:45.703 回答