gpt4 book ai didi

javascript - 通过递减值对 JS 对象进行排序(使用未知键)

转载 作者:行者123 更新时间:2023-11-28 14:18:15 27 4
gpt4 key购买 nike

我正在尝试按最高整数值对具有未知键的简单对象进行排序。有简洁的代码可以做到这一点吗?

我已经尝试过了,但没有成功。

let fixSort = {};
Object.keys(leaderboard).sort().forEach(function(key){
fixSort[key] = leaderboard[key];
});
console.log(fixSort);

这是对象:

let leaderboard = {
"Bob" : 2,
"Jimmy" : 1,
"Emma" : 6
}

我的目标是将其排序为:

{
"Emma" : 6,
"Bob" : 2,
"Jimmy" : 1
}

最佳答案

好吧,“你可以”:

 const fixSort = {};

for(const [k, v] of Object.entries(leaderboard).sort((a, b) => a[1] - b[1]))
fixSort[k] = v;
}

但这确实是一种糟糕的构建方式(因为添加新的键值对是不可能的,因为您必须重新创建整个事物)。相反,使用对象数组:

  const leaderboard = [
{ name: "Jack", score: 7 },
//...
];

如果您需要一个查找表,那么只需根据该对象创建一个即可:

 const byName = {};
for(const player of leaderboard)
byName[player.name] = player;

当然你也可以对数组进行排序:

 leaderboard.sort((a, b) => a.score - b.score);

然后您可以轻松添加/删除玩家。

 function addToLeaderBoard(player) {
leaderboard.push(player);
leaderboard.sort((a, b) => a.score - b.score);
byName[player.name] = player;
}

关于javascript - 通过递减值对 JS 对象进行排序(使用未知键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56448998/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com