Javascript 如何重新排列对象的属性?

Javascript 如何重新排列对象的属性?,javascript,json,angular,Javascript,Json,Angular,我有一个这样的物体: user = { 'a': 0, 'b': 1, 'c': 3, 'd': 4 } 我想像这样重新排列它的属性: user = { 'c': 3, 'a': 0, 'b': 1, 'd': 4 } 我不想创建新对象,而是想重新排列现有对象的属性。您无法定义普通对象中键的顺序。您可以改为将对象转换为贴图 映射对象按插入顺序迭代其元素-for…of循环为每次迭代返回一个[key,value]数组 或者,您可以将对象转换为数组并使用它。这种方

我有一个这样的物体:

user = {
  'a': 0,
  'b': 1,
  'c': 3,
  'd': 4
}
我想像这样重新排列它的属性:

user = {
  'c': 3,
  'a': 0,
  'b': 1,
  'd': 4
}

我不想创建新对象,而是想重新排列现有对象的属性。

您无法定义普通对象中键的顺序。您可以改为将
对象
转换为
贴图

映射对象按插入顺序迭代其元素-for…of循环为每次迭代返回一个[key,value]数组

或者,您可以将
对象
转换为
数组
并使用它。这种方法的缺点是,您必须记住属性的正确索引位置/什么属性对应于数组中的哪个位置:

var user = {a: 0, b: 1, c: 3, d: 4};
var uArr = [user.c, user.a, user.b, user.d];

在JavaScript对象中,您无法对键/值对进行真正的排序。它们是以自己的内部格式存储的,因此不能真正依赖于排序

我不确定您的确切用例是什么,但是如果您需要某些字段的保证顺序,您可以创建一个数组,该数组按照您需要的顺序包含字段名,并使用它来迭代对象并根据需要获取值


希望这有帮助

对象中的属性集实际上没有可靠的顺序。它通常基于向对象添加属性的事件序列,但即使是这样,作为任何编码实践基础的行为也是非常脆弱的。如果您想要定义顺序,您可以使用附加数组根据需要对属性进行排序,然后在通过
object.keys()
“出于某些原因”获取属性名称后,通过该数组对给定对象中的属性进行排序-您可以详细说明它们是什么吗?这可能是说您希望user.c位于user.a之前,有点像是说您希望document.getElementById位于document.querySelector之前。在对象的上下文中,它没有意义。如果需要排序,请使用数组(可能是对象数组)来构造数据。
var user = {a: 0, b: 1, c: 3, d: 4};
var uArr = [user.c, user.a, user.b, user.d];