问题是:Chrome会自动对对象的属性进行排序。
如果我有一个像这样的对象:
var obj = {4: "first", 2: "second", 1: "third"};
然后当我做下一个:
for(var i in obj) {
console.debug(obj[i]);
}
我明白了:
third
second
first
但期望:
first
second
third
答案 0 :(得分:18)
永远不要依赖属性的顺序。它们是无序的,并且没有规范定义应枚举的属性。
Chrome orders properties with numeric keys numerically,而其他浏览器按插入顺序枚举它们。它取决于实现。
答案 1 :(得分:5)