【发布时间】:2018-11-12 14:00:11
【问题描述】:
我有一个这样的对象:
user = {
'a': 0,
'b': 1,
'c': 3,
'd': 4
}
我想像这样重新排列它的属性:
user = {
'c': 3,
'a': 0,
'b': 1,
'd': 4
}
我不想创建新对象,而是想重新排列现有对象的属性。
【问题讨论】:
-
对象中的一组属性实际上并没有可靠的顺序。它通常基于将属性添加到对象的事件序列,但即使这样也是任何类型的编码实践都基于的非常脆弱的行为。
-
如果你想要一个定义的排序,你可以使用一个附加数组来根据你的需要对属性进行排序,然后在通过
Object.keys()获取属性名称后通过该数组对给定对象中的属性进行排序. -
“出于某些原因” - 你能详细说明它们是什么吗?这可能是xyproblem.info
-
说你希望 user.c 出现在 user.a 之前有点像你希望 document.getElementById 出现在 document.querySelector 之前。在对象的上下文中,它没有意义。如果需要排序,请使用数组(可能是对象)来构造数据。
标签: javascript json angular