【问题标题】:JavaScript - Sort objects by value but return keyJavaScript - 按值排序对象但返回键
【发布时间】:2021-07-14 15:20:38
【问题描述】:

我有一个这样的对象:

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

【问题讨论】:

    标签: javascript sorting object key-value


    【解决方案1】:

    只需按值对键进行排序。

    const object = { A: 15, B: 30, C: 22 };
    
    console.log(Object.keys(object).sort((a, b) => object[b] - object[a]));

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多