參考this posting;我可以通過2個字段對JSON對象數組進行排序。 而此公告還指出:嘗試使用jQuery對多個字段進行JSON排序
「要添加其他列進行排序,可以在陣列相比,添加其他項目。」
//THIS WORKS BUT NEEDS TO SORT BY ALL 5 FIELDS..
function sortRecords(a, b){
//note the minus before -cmp, for descending order
// field1 (Y or N), field2 (numeric), field3 (numeric),
// field4 (Y or N), field5 (Y or N)
return cmp(
[-cmp(a.field1, b.field1), cmp(a.field2, b.field2)],
[-cmp(b.field1, a.field1), cmp(b.field2, a.field2)]
);}
//THIS ONLY SORTS BY field1 and field2
function sortRecords(a, b){
//note the minus before -cmp, for descending order
// field1 (Y or N), field2 (numeric), field3 (numeric),
// field4 (Y or N), field5 (Y or N)
return cmp(
[-cmp(a.field1, b.field1), cmp(a.field2, b.field2), cmp(a.field3, b.field3)],
[-cmp(b.field1, a.field1), cmp(b.field2, a.field2), cmp(b.field3, a.field3)]
);}
function cmp(x,y){
return x > y ? 1 : x < y ? -1 : 0;
}
///implementation
data = $(data).sort(sortRecords);
我在做什麼錯在這裏?
這就像閱讀希臘語(我不會讀的方式),沒有有意義的數據,只是一堆函數調用和評論?用一些數字,字符串或任何對於不知道所有這些函數做什麼的人都可以理解的內容編寫一個基本示例,可以設置一個[** jsfiddle **](http://jsfiddle.net)等。 – adeneo
@adeneo:這是我的JSON對象 { 「名」 的數組: 「JOE」, 「field1的」: 「Y」, 「FIELD2」:3 「字段3」:79, 「字段4」: 「Y」,「字段5 「:」Y「} {」name「:」BEN「,」field1「:」Y「,」field2「:15,」field3「:113,」field4「:」Y「,」field5「:」N 「} {」 名稱 「:」 SUE」, 「field1的」: 「Y」, 「FIELD2」:35, 「字段3」:395, 「字段4」: 「Y」, 「字段5」: 「Y」} 我想最初的問題是:我怎樣才能我多個字段排序的JSON對象的數組? 我在這個位置是其原因是二/三我得到最1個數據源的數據和來自另一其他的數據,我有陣列99%排序,但我添加「字段5」需要被使出。 –