javascript - 如何按这些数组的两个元素对数组进行排序?
问题描述
我有一个字符串数组,我做了一个数字数组。现在我有两个元素的数组。我想在两个元素上从最小到最大对它们进行排序:
现在是什么:
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()
,但不知道如何正确使用。我会很高兴有任何帮助。
解决方案
第一个我们按第一个数字比较a[0] - b[0]
。如果我们得到相同的结果a
,b
然后我们按第二个数字排序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]));
推荐阅读
- java - Java 流可选,对两个项目进行空检查
- python - HoloViews 超出了 IOPub 消息速率
- maven - 如何激活 Maven 配置文件使用环境变量?
- windows - 如何在 Host.UI.PromptForCredential Powershell Windows 10 中输入密码文本字符串
- tabs - 当我尝试将我的自定义应用程序添加到 Micrsoft TEAMS 频道中作为新 TAB 时,保存按钮未显示
- android-studio - 设备(小马 Poco f1)未通过 USB 检测 Android Studio
- r - 从R中的文本文件中提取数字
- java - 如何使用 OpenTok 收听来自我的应用程序的传入视频通话?
- amazon-ec2 - 如何通过 Ansible 在 AWS EC2 实例上部署 Consul
- ruby - (Friendly_id) 如何在嵌套路由中使用 slug 而不是 id?