【发布时间】:2019-07-18 13:10:21
【问题描述】:
我有这个嵌套对象,我想按字母顺序排序,
var obj = {
'ABCD' : {
'E' : {},
'R' : {},
'A' : {},
'E' : {}
},
'WXYZ' : {
'F' : {},
'M' : {},
'G' : {},
'A' : {}
},
'MNOP' : {
'A' : {},
'H' : {},
'B' : {},
'C' : {}
},
'EFGH' : {
'D' : {},
'C' : {},
'B' : {},
'E' : {}
}
}
我希望输出是这样的-
{
'ABCD' : {
'A' : {},
'E' : {},
'E' : {},
'R' : {}
},
'EFGH' : {
'B' : {},
'C' : {},
'D' : {},
'E' : {}
},
'MNOP' : {
'A' : {},
'B' : {},
'C' : {},
'H' : {}
},
'WXYZ' : {
'A' : {},
'F' : {},
'G' : {},
'M' : {}
}
}
我已经编写了对直接键进行排序的代码,但我不知道如何在这些键中对进一步的对象进行排序, 这是我的代码-
var sorted = {}
Object.keys(obj).sort().forEach(function(val) {
sorted[val] = obj[val]
})
请就如何实现上述输出提出建议。谢谢。
【问题讨论】:
-
stackoverflow.com/questions/5525795/… 的可能重复项,您可以尝试改用数组
-
注意:如果你有任何整数键,那么无论键添加到对象Does JavaScript Guarantee Object Property Order?
-
对象属性不能排序
-
@FZs 他们可以在 ES6 中。顺序是:1)整数键 2)所有其他字符串键,按添加顺序 3)所有符号键 2ality.com/2015/10/…
-
@adiga 好的,但是是否可以对“所有其他字符串键”中的键进行排序?
标签: javascript sorting object foreach