代码之家  ›  专栏  ›  技术社区  ›  marcin2x4

在javascript中使用两个字段对2d数组排序

  •  -1
  • marcin2x4  · 技术社区  · 5 年前

    [ [ "the,", 3 ], [ "who,", 3 ], [ "take,", 4 ], [ "over,", 4 ], [ "world,", 5 ] ]
    
    1. 按数字升序排序

    预期结果是 who 字。第一步通过以下代码实现:

    arraySorted = arrCom.sort((a, b) => a[1] - b[1] || a[0] - b[0]);

    1 回复  |  直到 5 年前
        1
  •  1
  •   CertainPerformance    5 年前

    如果第一个比较结果是0(相同的数字),则使用 localeCompare

    const arr = [ [ "the,", 3 ], [ "who,", 3 ], [ "take,", 4 ], [ "over,", 4 ], [ "world,", 5 ] ];
    arr.sort(
      (a, b) => a[1] - b[1] || b[0].localeCompare(a[0])
    );
    console.log(arr);