我正在尝试使用 JQuery 使用此代码对多维 JSON 数组(此处称为 jsontest)进行排序:
jQuery.fn.sort = function() {
return this.pushStack( [].sort.apply( this, arguments ), []);
};
function sortLastName(a,b){
if (a.arrtime1 == b.arrtime1){
return 0;
}
return a.arrtime1 > b.arrtime1 ? 1 : -1;
};
function sortLastNameDesc(a,b){
return sortLastName(a,b) * -1;
};
x1=$(jsontest).sort(sortLastNameDesc);
如果使用 javascript 发出警报,则原始 jsontest 是:[{f_name:"john", arrtime1:"10", sequence:"0", title:"president", url:"google.com", color: "333333"}, {f_name:"michael", arrtime1:"11", sequence:"0", title:"general manager", url:"google.com", color:"333333"}]
但是排序之后:变成了(x1是):
({0:#1={f_name:"michael", arrtime1:"11", sequence:"0", title:"general manager", url:"google.com", color:"333333"}, 1:#2={f_name:"john", arrtime1:"10", sequence:"0", title:"president", url:"google.com", color:"333333"}, 长度:2, prevObject:{0:#1#, 1:#2#, length:2}, 上下文:(void 0), 选择器:".(undefined)"})
为什么在开头和结尾有这些额外的字符?我的排序功能有问题吗?我正在使用 JQuery 1.6 undefined)"})
最佳答案
我不确定您为什么要使用 jQuery 函数来执行此操作,而您可以使用普通数组排序来执行此操作。
var foo = jsontest.sort(sortLastNameDesc);
所有这些“额外”的东西都是事实,它现在是一个 jQuery 对象而不是一个数组。
关于php - 使用 JQuery 对多维 JSON 数组进行排序后的额外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770606/