我有一组人物对象,每个人物都有一个名字和一个得分属性。我想通过person对象的score属性对数组进行排序,然后显示数组。
我有一个显示排名的函数,我已经将排序代码添加到该函数的顶部,但它没有对数组进行排序,也没有抛出任何错误。任何想法有什么不对?
javascript代码:
var rankings = [];
/* Player object constructor */
function Player(pname, score) {
this.pname = pname;
this.score = score;
}
/* function to add new players removed for clarity, it works */
/* sort and display the player objects by score */
function displayRankings () {
rankings.sort( function(a, b) {
return a[1] - b[1];
});
for (var i = 0; i < rankings.length; i++) {
var li = document.createElement("li");
var node = document.createTextNode(rankings[i].pname + ", " + rankings[i].score);
li.appendChild(node);
var element = document.getElementById("rankings");
element.appendChild(li);
}
}
答案 0 :(得分:1)
假设rankings
是Person
个对象的数组,那么您需要访问score
属性,而不是[1]
。
rankings.sort( function(a, b) {
return a.score - b.score;
});