对于this posting,我可以按两个字段对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);我在这里做错什么了?
发布于 2012-12-11 18:18:24
我一直在使用StackOverflow,我结合了几个如何排序/排序的例子;这个函数似乎给了我我想要的.
将这个JSON对象数组作为数据。
在{“名称”:“JOE”、"field1":"Y“、"field2":3、"field3":79、"field4":"Y”、"field5":"Y"} {"name":"BEN“、"field1":"Y”、"field2":15、"field3":113、"field4":"Y“、"field5":"N"} {”名称“:”SUE“、"field1":"Y”、“Y”"field2":35,"field3":395,"field4":"Y","field5":"Y"}
我可以调用sortRecords()来对我想要的进行排序。
在 {"name":"JOE“、"field1":"Y”、"field2":3、"field3":79、"field4":"Y“、"field5":"Y"} {"name":"SUE”、"field1":"Y“、"field2":35、"field3":395、"field4":"Y”、"field5":"Y"} {名称:“BEN”、"field1":"Y“、”Y“"field2":15,"field3":113,"field4":"Y","field5":"N"}
function sortRecords(a, b){
if (a.field1 < b.field1){
return 1;
} else if (a.field1 > b.field1){
return -1;
} else if (a.field2 < b.field2){
return 1;
} else if (a.field2 > b.field2){
return -1;
} else if (a.field3 < b.field3){
return 1;
} else if (a.field3 > b.field3){
return -1;
} else if (a.field4 < b.field4){
return -1;
} else if (a.field4 > b.field4){
return 1;
} else if (a.field5 < b.field5){
return -1;
} else if (a.field5 > b.field5){
return 1;
} else {
return 0;
}
}
data = $(data).sort(sortRecords);https://stackoverflow.com/questions/13809352
复制相似问题