我有一个像这样的对象:
{
"playerId1": {
"score": 100,
"rank": 0
},
"playerId2": {
"score": 500,
"rank": 0
},
"playerId3": {
"score": 200,
"rank": 0
}
}
我需要根据分数对它们进行排序,然后将排序顺序分配给排名。 最好的方法是什么?
我厌倦了转换为数组,然后排序很容易,但我想保留对象结构。
最佳答案
您可以设置排名并将其保留为对象。
var temp = {
"playerId1": {
"score": 100,
"rank": 0
},
"playerId2": {
"score": 500,
"rank": 0
},
"playerId3": {
"score": 200,
"rank": 0
}
};
Object.values(temp).sort(function(a, b){
return a.score - b.score;
}).forEach(function(player, rank){
player.rank = rank;
});
console.log(temp);
关于javascript - 如何对嵌套对象映射进行排序并根据排序高效地赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51200269/