首页 > 解决方案 > 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

标签: javascriptsortingobjectkey-value

解决方案


您可以从对象中获取条目,按值降序排序并映射键。

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));


推荐阅读