【发布时间】:2014-07-08 10:51:28
【问题描述】:
按值也是对象的键对对象进行排序,并对内部对象进行排序,即递归地对对象进行排序。排序应该按照键。
我查看了 * 的其他问题,但 没有一个是针对 对象递归排序的。
我调查的问题:
Sorting JavaScript Object by property value
示例:
input = {
"Memo": {
"itemAmount1": "5",
"taxName1": "TAX",
"productPrice1": "10",
"accountName1": "Account Receivable (Debtors)"
},
"Footer": {
"productDescription2": "Maggie",
"itemQuantity2": "49.5",
"accountName2": "Account Receivable (Debtors)",
"taxName2": "TAX"
},
"Header": {
"itemDiscount3": "10",
"accountName3": "Account Receivable (Debtors)",
"productPrice3": "10",
"taxName3": "TAX"
}
}
输出
output = {
"Footer": {
"accountName2": "Account Receivable (Debtors)",
"itemQuantity2": "49.5",
"productDescription2": "Maggie",
"taxName2": "TAX"
},
"Header": {
"accountName3": "Account Receivable (Debtors)",
"itemDiscount3": "10",
"productPrice3": "10",
"taxName3": "TAX"
},
"Memo": {
"accountName1": "Account Receivable (Debtors)",
"itemAmount1": "5",
"productPrice1": "10",
"taxName1": "TAX"
}
}
不一定是2级对象层次,可能包含n级对象层次需要排序。
【问题讨论】:
-
Javascript 对象没有顺序,它们是一个键值映射。你不能订购它们。
-
修正了标题:它说的是“属性”而不是键(不能用于排序,正如@deceze 指出的那样)
-
为什么我们不能按字母顺序对键进行排序?
-
正如这个答案中所指出的:*.com/a/5525812/2964675 它不在 ECMAScript 规范中。如果您想要某种顺序,请尝试使用数组对象。
-
@MarcoCI @_deceze 这个链接指向浏览器的问题,我检查了当我在 chrome 的控制台中创建一个对象时,它给了我一个已经排序的对象,但我想使用 对一个对象进行排序node.js.
标签: javascript node.js sorting recursion