自定义排序的多元素嵌套列表

时间:2013-10-11 14:27:46

标签: javascript

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

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

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

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

我怎样才能在纯JavaScript中执行此操作? (没有外部库,下划线等?)

1 个答案:

答案 0 :(得分:0)

Array.sort方法将compare函数作为可选参数

您可以指定如下:

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数组的原始顺序,那么值得承担记住,您可能必须在执行排序操作之前进行克隆。