【发布时间】:2017-02-28 20:51:25
【问题描述】:
这个问题与所指出的不同,因为我想按一个字符串排序,然后是一个数字和一个字符串等。
我已经离开了
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;
};
当我在浏览器中跟踪它时它似乎可以工作,但是一旦我离开排序功能, selectedStudents 数组就会恢复。它似乎确实有效,但仅适用于 ClassOrder 数据。然后,如果我尝试按 ClassOrder 排序,然后按 LastName 排序,则没有任何效果。
return a.ClassOrder - b.ClassOrder || a.LastName - b.LastName
【问题讨论】:
-
你不能用
-比较字符串,它只适用于数字。
标签: javascript arrays sorting