Pra*_*ash 1 javascript arrays sorting function
所以,如果我有一个对象数组,如:
var a = [
{
name: "Apple",
rank: 25
},
{
name: "Cherry",
rank: 29
},
{
name: "Grape",
rank: 15
}
]
Run Code Online (Sandbox Code Playgroud)
有没有办法按等级对值进行排序,通过调用函数,我已尝试过它但仍然未定义:
function sorting(obj){
obj.sort(function(a, b){
return a[1] - b[1];
})
}
Run Code Online (Sandbox Code Playgroud)
我正在努力找出我出错的地方,并且无法在MDN上找到任何有关此问题的文件.
任何帮助将非常感谢,提前感谢
双方a并b认为获得通过到sort的回调是从阵列的对象.如果你想访问他们的rank属性,你需要做的a.rank不是a[1].这两个a[1]和b[1]是undefined因为对象没有一个叫属性"1":
return a.rank - b.rank;
Run Code Online (Sandbox Code Playgroud)
例:
var arr = [{ name: "Apple", rank: 25 }, { name: "Cherry", rank: 29 }, { name: "Grape", rank: 15 }];
arr.sort(function(a, b) {
return a.rank - b.rank;
});
console.log(arr);Run Code Online (Sandbox Code Playgroud)
注意:要反转排序顺序,请执行以下操作:
return b.rank - a.rank;
Run Code Online (Sandbox Code Playgroud)