我正在尝试按 score
值对该对象进行排序,以便可以填充高分表。发现这种排序方法非常适合在公式中使用 -
对最小到最高进行排序,但是当我尝试使用 +
反转它时,它不起作用。我很困惑..
JS:
scores = [
{"n":"Arne", "score":700},
{"n":"Bertil", "score":430},
{"n":"Carl", "score":901},
{"n":"David", "score":30},
{"n":"Eric", "score":23},
{"n":"Frida", "score":118},
{"n":"Greg", "score":221},
{"n":"Hulk", "score":543}
];
scores.sort(function(a, b) {
return a.score + b.score;
});
//add rows to table from scores object
var t = document.getElementById('table');
for (var j in scores) {
var r = document.createElement('tr')
r.innerHTML = '<td><span></span></td><td>'+scores[j].n+'</td><td>'+scores[j].s+'</td>'
t.appendChild(r);
}
最佳答案
您提到您正在尝试反转排序,这最初涉及减法。
因此,我认为可以公平地假设您原来的排序是这样的......
scores.sort(function(a, b) {
return a.score - b.score;
});
如果想反向排序,只需颠倒减法的顺序即可:
scores.sort(function(a, b) {
return b.score - a.score;
});
关于javascript - 为什么这个对象数组的排序失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9131010/