Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按属性排序的对象的Javascript数组是';行不通_Javascript - Fatal编程技术网

按属性排序的对象的Javascript数组是';行不通

按属性排序的对象的Javascript数组是';行不通,javascript,Javascript,我有一个person对象数组,每个对象都有一个名称和一个score属性。我想按person对象的score属性对数组进行排序,然后显示数组 我有一个显示排名的函数,我在该函数的顶部添加了排序代码,但它没有对数组进行排序,也没有抛出错误。你知道怎么了吗 javascript代码: var rankings = []; /* Player object constructor */ function Player(pname, score) { this.pname = pna

我有一个person对象数组,每个对象都有一个名称和一个score属性。我想按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);
        }
    }
var排名=[];
/*播放器对象构造函数*/
函数播放器(pname,score){
this.pname=pname;
这个分数=分数;
}
/*添加新玩家的功能为了清晰起见,它可以工作*/
/*按分数排序和显示玩家对象*/
函数显示排名(){
排序(函数a,b){
返回a[1]-b[1];
});
对于(var i=0;i
假设
排名
是一组
个人
对象,那么您需要访问
得分
属性,而不是
[1]

rankings.sort( function(a, b) {
    return a.score - b.score;
});

假设
排名
是一组
个人
对象,那么您需要访问
得分
属性,而不是
[1]

rankings.sort( function(a, b) {
    return a.score - b.score;
});

您应该为您的
排名提供最少的数据,否则我们无法确定这是否是数据问题。(我猜您的排序函数完全错误,请尝试
a.score-b.score
)不确定要提供什么数据,因为实际上除了html和函数代码之外,没有更多的数据可以向数组中添加播放器。改成a分-b分成功了。非常感谢您应该为您的
排名提供最少的数据,否则我们无法确定这是否是数据问题。(我猜您的排序函数完全错误,请尝试
a.score-b.score
)不确定要提供什么数据,因为实际上除了html和函数代码之外,没有更多的数据可以向数组中添加播放器。改成a分-b分成功了。非常感谢