Chrome和可能Opera自动排序对象属性

问题是:Chrome会自动排序对象的属性。

如果我有像这样的对象:

var obj = {4: "first", 2: "second", 1: "third"};

然后当我做下一个时:

for(var i in obj) {
    console.debug(obj[i]);
}

我看到下一个:

third second first

但期望:

first second third


永远不要依赖于属性的顺序。 它们是无序的,没有规定哪个顺序属性应该枚举。

Chrome使用数字键以数字顺序排列属性,而其他浏览器按插入顺序枚举它们。 它依赖于实现。


您不应该期待for..in循环中的任何特定顺序的键。 从MDC文档:

for ... in循环以任意顺序遍历对象的属性

如果您想使用数字键进行排序,请使用数组。

链接地址: http://www.djcxy.com/p/55321.html

上一篇: Chrome and probably Opera sort object properties automatically

下一篇: How do you work with an array of jQuery Deferreds?