我有一个非常简单的 JSON 对象,如下所示:
{
"people":[
{
"f_name":"john",
"l_name":"doe",
"sequence":"0",
"title":"president",
"url":"google.com",
"color":"333333"
},
{
"f_name":"michael",
"l_name":"goodyear",
"sequence":"0",
"title":"general manager",
"url":"google.com",
"color":"333333"
}
]
}
现在这是从我的服务器端代码返回的,我运行jQuery.each
形成必要的html并输出结果。
现在我正在做的是向包含我的排序信息的服务器发送 AJAX 调用...例如“Title DESC”并重新运行 SQL 查询以返回新的结果集。但我想避免这种情况,并使用 jQuery 对生成的 JSON 进行排序,以防止往返服务器和多个数据库访问。
我怎样才能使用 jQuery 实现这一点?
jQuery 对于排序并不是特别有帮助,但这里有一个优雅且高效的解决方案。只需编写一个简单的 JS 函数,该函数获取属性名称和顺序(升序或降序),并使用简单的比较函数调用本机 sort() 方法:
var people = [
{
"f_name": "john",
"l_name": "doe",
"sequence": "0",
"title" : "president",
"url" : "google.com",
"color" : "333333",
}
// etc
];
function sortResults(prop, asc) {
people.sort(function(a, b) {
if (asc) {
return (a[prop] > b[prop]) ? 1 : ((a[prop] < b[prop]) ? -1 : 0);
} else {
return (b[prop] > a[prop]) ? 1 : ((b[prop] < a[prop]) ? -1 : 0);
}
});
renderResults();
}
Then:
sortResults('l_name', true);
玩一个工作示例here http://jsfiddle.net/194rbn3s/5/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)