对 json 保留索引进行排序
Sort json preserving index
我正在尝试对下面的json进行排序,但直到现在都找不到方法。我通过数据类型为 json 的 jQuery ajax 获得这个 json。如何对此保留索引应用排序?每次我尝试对javascript进行排序时,都会抛出一个错误,告诉undefined不是一个函数。我已经知道 json 或对象没有排序。
那么我该如何才能做到这一点呢?我真的需要保留这个索引。
{
"header": {
"user": "1059",
"authenticated": true,
"isGuest": false,
"time": 1416362117
},
"batches": {
"3503": { // Preserve this index
"user": "1059",
"auction": "1826",
"number": "1",
"published": "1",
"type": "1",
"status": "1",
"date_start": "1415379600",
"date_end": "1417021200", // Sort by this value
},
"3583": {
"user": "1059",
"auction": "1886",
"auto_value": "0.00",
"number": "1",
"published": "1",
"type": "1",
"status": "1",
"date_start": "1415376000",
"date_end": "1417017600",
},
}
}
正如我在评论中写和引用的那样 - 属性没有顺序。创建一个单属性对象的数组,您可以对其进行排序。像这样:
var data = {
"header": {
"user": "1059",
"authenticated": true,
"isGuest": false,
"time": 1416362117
},
"batches": [ // this is an array of objects, not a single object
{"3503": { // Preserve this index
"user": "1059",
"auction": "1826",
"number": "1",
"published": "1",
"type": "1",
"status": "1",
"date_start": "1415379600",
"date_end": "1417021200", // Sort by this value
}},
{"3583": {
"user": "1059",
"auction": "1886",
"auto_value": "0.00",
"number": "1",
"published": "1",
"type": "1",
"status": "1",
"date_start": "1415376000",
"date_end": "1417017600",
}}
] // end of array
}
data.batches.sort(function(a, b) {
return a[Object.keys(a)[0]].date_end - b[Object.keys(b)[0]].date_end;
});
console.log(data.batches);
您可以将这些数字保留在包含user
、auction
等的对象中,以便于访问。
相关文章:
- Javascript排序索引链接数组
- Javascript中的多维数组排序索引问题
- 谷歌地图上的排序/z索引覆盖
- Javascript表排序工作得很好,但对所有索引进行迭代会得到不同的结果
- 对对象保持索引中的值进行排序
- 如何在对象中按值创建排序索引数组
- 根据对象属性对 JavaScript 对象进行排序,但维护索引
- 动态 jquery ui 可排序块的索引/位置
- jQuery - 获取可排序列表的索引
- Javascript 数组 // 从指定索引开始对数组重新排序,同时保持原始顺序
- 如果关联数组从正则表达式返回,则对索引进行排序
- 排序方法和索引
- 对数组和索引进行排序
- 车把:在保留原始排序索引的同时对列表进行排序
- 在 jquery 可排序后定义
- 元素
- 元素的索引
- 元素
- JavaScript 复杂的排序,基于最终排序索引的多个键
- 如何在ExtJS存储中获取记录的预排序索引
- SVG重新排序z索引(Raphael可选)
- 反向排序数组的排序索引
- 根据数组'的排序索引对数组进行排序