【发布时间】:2017-06-18 03:08:46
【问题描述】:
我无法按 KEY (DESC) 对以下对象进行排序。 然后,按“notesList.id”属性 (DESC) 对每个项目进行排序。
预期顺序
- “2017/04/17”
- “2017/03/14”
- “2017/02/30”
那么,对于“2017/04/17” notesList 项,这里是预期顺序:
- id:57
- id:48
- id:12
JS 对象
var myNotes = {
"customNotes":{
"2017/04/17":{
"concernedDate":"2017/04/17",
"notesList":[
{
"id":48,
"title":"Title 48"
},
{
"id":12,
"title":"Title 12"
},
{
"id":57,
"title":"Title 57"
}
]
},
"2017/02/30":{
"concernedDate":"2017/02/30",
"notesList":[
{
"id":92,
"title":"Title 92"
}
]
},
"2017/03/14":{
"concernedDate":"2017/03/14",
"notesList":[
{
"id":92,
"title":"Title 92"
}
]
}
}
}
脚本
//Convert the OBJECT to an ARRAY
var tmpArr = Object.keys(myNotes.customNotes);
//Sort (Not working)
tmpArr.sort((a, b) => a > b ? a : b);
//Convert back the ARRAY to an OBJECT
Object.keys(myNotes.customNotes).sort((a, b) => a > b ? a : b).map(k => myNotes.customNotes[k]);
我错过了什么?非常感谢你
【问题讨论】:
-
我认为您缺少的重要事情之一是对象未排序。与数组不同,您不能依赖它们以任何特定顺序排列,如果您需要顺序,则需要将它们存储为对象数组。相反,最好通过“键”查找对象。
标签: javascript arrays sorting javascript-objects