javascript - 为什么这个对象数组的排序失败?

标签 javascript

我正在尝试按 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/

相关文章:

javascript - 如何在Django Form中使用Jquery脚本的值?

javascript - 如何使用angularjs从html调用自定义函数?

javascript - 帮助我说服老师他需要停止教授 IE 过滤器!

javascript - Flickity 轮播作为另一个导航

javascript - ajax中的json响应是正确的,但内容没有更新?

javascript - 如何完全使用 JavaScript 关闭浏览器

javascript - 旋转 Canvas 的一部分

javascript - AngularJS 在更新数组时不刷新 ngRepeat

javascript - JS SubtleCrypto RSA加密和解密

javascript - 在 Bootstrap Modal 中将值传递给表单