javascript - JavaScript - 按值排序对象但返回键
问题描述
我有一个像这样的对象:
object = {A: 15, B: 30, C: 22}
所以我使用它的值对它进行排序。为此,我有这个功能:
object = {
A: 15,
B: 30,
C: 22
}
function sortObjsValues(obj) {
return Object.values(obj).sort((a, b) => {
if (a > b) {
return -1;
} else if (a < b) {
return 1;
} else {
return 0;
}
});
}
console.log(sortObjsValues(object)); // => returns 30,22,15
有没有办法返回它的键而不是它的值,保持按它的值排序?最终结果将是B,C,A
解决方案
您可以从对象中获取条目,按值降序排序并映射键。
const
object = { A: 15, B: 30, C: 22 },
getSortedKeys = o => Object
.entries(o)
.sort((a, b) => b[1] - a[1])
.map(([k]) => k);
console.log(getSortedKeys(object));
推荐阅读
- r - 有没有办法用 ggplot2 做一个多堆栈条形图?
- react-native - 当我们过度解雇时如何保存文本输入值?
- javascript - 量角器:e2e:我有一个测试用例,我需要在其中测试该文本是否存在
- css - CSS 背景渐变动态动画
- swift - 无法理解 Apple Watch 并发症的生命周期并让它更新
- python - python - 如何在python中使用MTCNN从文件夹中的图像中提取人脸?
- uart - 如何使用 Atmega8 做硬件 UART
- mysql - 如何使用环境变量通过一个 docker-compose.yml 部署多个数据库?
- angular - 当名称更改每次构建时,Angular pm2 如何加载 outpudHashed main.8646asdasdas6d8468.js 文件?
- kubernetes - Kubernetes 的工作节点上没有临时存储资源