這個問題是不同於者指出,因爲我想通過一個字符串,然後一個數字和字符串進行排序等由多個(混合數字和字符串)的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