这个问题是不同于者指出,因为我想通过一个字符串,然后一个数字和字符串进行排序等由多个(混合数字和字符串)的JavaScript类型的数组字段
我一直打算关闭的
javascript sort array by multiple (number) fields
我已经将我的数据如下:
function GetStudentList(){
var sl = [
{
"ClassOrder": 1,
"LastName": "Blow",
"FirstName": "Joe",
"Class": "170-2"
},
{
"ClassOrder": 2,
"LastName": "Jane",
"FirstName": "Sally",
"Class": "170-1"
},
{
"ClassOrder": 1,
"LastName": "Belmont",
"FirstName": "John",
"Class": "170-1"
}
]
return(sl);
}
然后我打电话的代码:
var selectedStudents = GetStudentList();
selectedStudents.sort(function(a,b){
return a.LastName - b,LastName;
};
它似乎工作时,我在浏览器中跟踪它,但只要我离开sort函数,selectedStudents数组恢复。它似乎工作,但只有ClassOrder数据。然后,如果我尝试按ClassOrder和THEN姓氏进行排序,则不会再有效。
return a.ClassOrder - b.ClassOrder || a.LastName - b.LastName
您不能'-'比较字符串,即仅适用于数字。 – Bergi