【问题标题】:How can I sort objects by the value of one of the keys如何按其中一个键的值对对象进行排序
【发布时间】:2021-09-23 22:04:00
【问题描述】:

所以我一直在尝试对以下对象进行排序,但遇到了一些麻烦:

let obj = {
 "1": {
  "name": "card1",
  "ryo": 3
},
"2": {
  "name": "card2",
  "ryo": 7
},
 "3": {
  "name": "card3",
  "ryo": 2
  }
}

Object.fromEntries(Object.entries(obj).sort((x, y) => y[1].ryo - x[1].ryo));

上面的代码返回:

{
  '1': { name: 'card1', ryo: 3 },
  '2': { name: 'card2', ryo: 7 },
  '3': { name: 'card3', ryo: 2 }
}

我的目标是让它返回:

{
  '2': { name: 'card2', ryo: 7 },
  '1': { name: 'card1', ryo: 3 },
  '3': { name: 'card3', ryo: 2 }
}

虽然看起来很简单,但我无法让它工作,我不知道为什么它不会排序。

编辑:我想补充一点,我试图按 ryo 降序对对象进行排序。

【问题讨论】:

    标签: node.js json object


    【解决方案1】:

    您可以尝试转换为数组,然后像这样排序

    let sorted = Object.entries(obj).sort(function(a, b) {
    return b[1].ryo - a[1].ryo
    });
    

    【讨论】:

    • 在对它进行排序时,它给我留下了一个数组,当我使用 Object.fromEntries() 时,它会转换回未排序的原始对象:(
    • @MeowGuy 你到底是谁?泰伦·盖尔?
    猜你喜欢
    • 2023-02-03
    • 2012-12-10
    • 1970-01-01
    • 2010-11-11
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    相关资源
    最近更新 更多