javascript - Javascript 中的 JSON 对象排序

标签 javascript jquery json

我有一个由 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/

相关文章:

javascript - Service Worker 注册问题

javascript - 代码可以在 Codepen 中运行,但不能在我的虚拟主机上运行

javascript - AngularJS 和 JSON - 添加子对象

javascript - 如何在三元表达式中使用 null?

Javascript/React(使用 Gulp/Babel)-无法导入

javascript - 使用 Mustache.Js 模板将嵌套数组绑定(bind)到 HTML 页面

php - 运行 json_encode 后替换\r\n(换行符)

javascript - 将变量传递给模型

javascript - 如何使用 js 触发 only-css 模式

javascript - 如何让图像仅在视口(viewport)中延迟加载?