静态对象的键顺序

时间:2018-10-30 18:58:16

标签: javascript

如果以前已经回答过,请给我指出一个答案,但是找不到关于静态创建的对象的答案。

const foo = { 
  c: 'c', 
  b: 'b', 
  a: 'a' 
};

使用像Object.keys()这样的枚举时,键的顺序是否保证保持不变?

2 个答案:

答案 0 :(得分:0)

对象不保留顺序-

  

ECMAScript对象是每个属性的无序集合   具有零个或多个确定每个属性的属性的属性   用过的

如果需要订购,请使用数组。

答案 1 :(得分:0)

简短的回答:否。传统上,对象不保证有关订单的任何内容。

现在,实际上,许多浏览器确实保留插入顺序,ES2015在某些情况下确实对插入顺序有一定保证。参见例如this similar question了解更多信息。

尽管如此,我还是建议您通过例如使用Map,或使用列表手动跟踪订单。