我正在尝试按score
值对此对象进行排序,以便我可以填充一个highscores表。找到这种排序方法,它可以在公式中使用-
从最小到最高排序,但是当我尝试用+
反转它时,它不起作用。我很困惑..
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);
}
答案 0 :(得分:3)
你提到你试图扭转最初涉及减法的排序。
因此,我认为假设您的原始类型是这样的,这是公平的......
scores.sort(function(a, b) {
return a.score - b.score;
});
如果要按相反方向排序,只需颠倒减法的顺序:
scores.sort(function(a, b) {
return b.score - a.score;
});
答案 1 :(得分:0)
您的排序功能应该返回positive , 0 , or negative values
试试这里:
http://jsbin.com/icojaz/edit#javascript,html
按分数排序。
答案 2 :(得分:-1)
根据http://www.w3schools.com/jsref/jsref_sort.asp,您可以看到您只需反转输入参数,如下所示:return a.score - b.score;