问题是:Chrome浏览器会自动对对象的属性进行排序。

如果我有一个像这样的对象:

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

然后当我下一步时:
for(var i in obj) {
    console.debug(obj[i]);
}

我接下来看到:
thirdsecondfirst
但期望:
firstsecondthird

最佳答案

永远不要依赖属性的顺序。它们是无序的,并且没有任何规范定义应该枚举属性的顺序。

Chrome orders properties with numeric keys numerically,而其他浏览器按插入顺序枚举它们。它取决于实现。

关于javascript - Chrome和Opera可能会自动对对象属性进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4886314/

10-10 21:43
查看更多