当遍历javascript对象时,字段的顺序是可预测的吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (39)

在php中,如果有以下代码:

$map = array(
  "first" => 1,
  "second" => 2
);

$map["third"] = 3;

foreach($map as $key => $value) {
  // code
}

条目将按照添加到数组中的顺序列出。

现在,我是否可以假设同样的规则适用于以下等价的Javascript?

map = {
  "first": 1,
  "second": 2
};

map["third"] = 3;

for (key in map) {
  // code
}
提问于
用户回答回答于

大多数浏览器会按照添加到对象的顺序循环访问属性,但是JavaScript标准说明顺序是未定义的 - 所以你不应该依赖这种行为。

如果你需要订购的功能,应该为自己创建一个可以同时使用对象键或数字键的新类。

用户回答回答于

不,行为取决于实现,而且不能保证。当需要保留订单时使用数组。

扫码关注云+社区