我有一个由 JSON.parse 返回的 JSON 对象 jobj=JSON.parse(jsnstr) 数组,我希望按其名称对其进行排序。 我用过
jobj=$(jobj).sort(sortfunction);
function sortfunction(a,b){
return a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1;
};
但这并没有成功,而是我得到了未定义的 obj 有任何帮助吗?
最佳答案
你无法对哈希进行排序;它必须是一个数组。您可以做的是将每个 a.name 值的引用设置为一个数组,然后使用自定义函数对该数组进行排序,就像您在那里一样。
json = JSON.parse(...);
var refs = [];
for(var i in json) {
var name = i.name;
refs.push({
name : name.toLowerCase(),
object : i
});
}
var sorted = refs.sort(function(a,b) {
return a.name > b.name;
});
现在 refs 数组中的所有内容都已排序,您可以通过排序[index].object 单独访问每个对象。
关于javascript - Javascript 中的 JSON 对象排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10885746/