在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
}
答案 0 :(得分:10)
大多数浏览器会按照添加到对象的顺序遍历属性,但Javascript标准说订单是未定义的 - 因此您不应该依赖此行为。例如,我在前一段时间阅读了blog post有关Google Chrome并不总是表现出这种行为的信息。
如果您需要订购的功能,您应该为自己创建一个可以同时使用对象或数字键的新类。
答案 1 :(得分:0)
不,行为取决于实施,但无法保证。在需要保留订单时使用数组。