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

Custom sort of multi-element nested list

本文关键字:自定义 排序 列表 元素 嵌套      更新时间:2023-09-26

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

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

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

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

如何在纯 JavaScript 中执行此操作?(没有外部库,下划线等?

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数组的完整性和原始顺序,则值得记住,您可能需要在执行排序操作之前进行克隆。