首页 > 解决方案 > 如何按这些数组的两个元素对数组进行排序?

问题描述

我有一个字符串数组,我做了一个数字数组。现在我有两个元素的数组。我想在两个元素上从最小到最大对它们进行排序:

现在是什么:

const numArray = array.map(str => parseInt(str))
console.log(numArray)
[15, 5]
[3, 55]
[25, 5]
[3, 10]
[15, 25]

我想得到:

[3, 10]
[3, 55]
[15, 5]
[15, 25]
[25, 5]

如何做到这一点?我想我需要使用.reduce()or .sort(),但不知道如何正确使用。我会很高兴有任何帮助。

标签: javascriptarrayssorting

解决方案


第一个我们按第一个数字比较a[0] - b[0]。如果我们得到相同的结果ab然后我们按第二个数字排序a[1] - b[1]

const arr = [
  [15, 5],
  [3, 55],
  [25, 5],
  [3, 10],
  [15, 25]
];

console.log(arr.sort((a, b) => a[0] - b[0] || a[1] - b[1]));


推荐阅读