使用 Object.keys 和 Array.reverse 反转对象

Jul*_*lez 7 javascript ecmascript-6

我得到了以下对象

{
  "20170007": {
    "id": 1
  },
  "20170008": {
    "id" : 2
  },
  "20170009": {
   "id": 3
  },
  "20170010": {
    "id": 4
  }
}
Run Code Online (Sandbox Code Playgroud)

所需的输出:

{
  "20170010": {
    "id": 4
  },
  "20170009": {
   "id": 3
  },
  "20170008": {
    "id" : 2
  },
  "20170007": {
    "id": 1
  }
}
Run Code Online (Sandbox Code Playgroud)

我的尝试:

{
  "20170007": {
    "id": 1
  },
  "20170008": {
    "id" : 2
  },
  "20170009": {
   "id": 3
  },
  "20170010": {
    "id": 4
  }
}
Run Code Online (Sandbox Code Playgroud)

奇怪的部分是,当我控制台.log forEach 内的键时,键被反转。但是当我将键分配给 newObj 时,输出仍然是原始顺序......这里发生了什么?

编辑:

感谢您对我查看 Map 对象的所有回复。 地图

new Map([iterable])
Run Code Online (Sandbox Code Playgroud)

这实际上是我正在寻找的,而且订单是有保证的。

JSO*_*ulo 1

对象是对象类型的成员。它是一个无序的属性集合,每个属性都包含一个原始值、对象或函数。存储在对象属性中的函数称为方法。

ECMA规范

由于对象是无序的,因此您应该使用数组。

  • 您引用近二十年历史的规范是否有某种原因? (3认同)