如您所想 - 我被卡住了 ;) 我的问题是我有一个对象,其中包含一些其他对象:
let players = {
buggy: {
name: 'John',
surname: 'Cocroach',
rank: 872
},
valentino: {
name: 'Antonio',
surname: 'Valencia',
rank: 788
},
tommy: {
name: 'Tom',
surname: 'Witcher',
rank: 101
},
};
我想做的是按“排名”对“玩家”对象进行排序: (汤米(101),华伦天奴(788), buggy (872)) 或字符串(例如“姓氏”)。更重要的是,我希望它仍然是一个对象(我在其他几个函数中使用它;))
我在这里尝试了一些想法(例如转换为数组),但都没有效果。什么是最佳选择?
最佳答案
由于对象是通过引用存储的,因此您可以拥有一个数组和一个对相同的底层播放器对象进行操作的对象:
const playersByRank = Object.values(players).sort((a, b) => a.rank - b.rank);
现在您可以通过 players
下的名称或 playersByRank
下的相对排名来访问玩家,例如让玩家“ buggy ”与让排名最高的玩家一样:
players.buggy.test = "works";
console.log(playersByRank[0].test);
关于Javascript:对对象中的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49199394/