首页 > 解决方案 > 对具有字符串键的数组中的对象进行排序

问题描述

我有这个对象数组,我需要按分数降序对“列表”进行排序。

var list =[{ '440684023463804938': { score: 6, bonuscount: 2 },
  '533932209300832266': { score: 20, bonuscount: 0 },
  '448746017987231756': { score: 9, bonuscount: 0 },
  '492585498561216513': { score: 14, bonuscount: 0 } }]

我通常使用 .sort 函数,但这次它给了我 list.sort 不是函数

任何帮助表示赞赏。

标签: javascriptnode.js

解决方案


您可以将对象转换为数组,然后应用常规排序:

const list = [
    {
        '440684023463804938': {score: 6, bonuscount: 2},
        '533932209300832266': {score: 20, bonuscount: 0},
        '448746017987231756': {score: 9, bonuscount: 0},
        '492585498561216513': {score: 14, bonuscount: 0}
    }
];

const result = Object.entries(list[0]).sort((a, b) => b[1].score - a[1].score);

console.log(result);


推荐阅读