mo_*_*aat 6 javascript sorting object
我有一个看起来像下面的对象.如何基于嵌套对象中的公共属性对此类事进行排序.我期望的输出是玩家2基于较高分数首先出现.
我的挑战是访问每个对象的属性进行排序.
这是我的想法和尝试,但它没有做排序.
Object.keys(data).sort(function(p1, p2){
return p1.score - p2.score;
}).forEach(function(key) {
var value = data[key];
delete data[key];
data[key] = value;
});
Run Code Online (Sandbox Code Playgroud)
我的数据
var data =
{
player1:
{ score: 4,
cards: 6 },
player2:
{ score: 6,
cards: 4}
}
Run Code Online (Sandbox Code Playgroud)
您需要使用对象而不是键的属性对数据进行排序,然后必须将其还原,因为您需要降序排序。
return data[b].score - data[a].score;
// ^^^^^^^ ^^^^^^^ object
// ^ ^ descending
Run Code Online (Sandbox Code Playgroud)
我建议使用一个空对象并按有序键插入属性。
return data[b].score - data[a].score;
// ^^^^^^^ ^^^^^^^ object
// ^ ^ descending
Run Code Online (Sandbox Code Playgroud)