繁体   English   中英

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

[英]Chrome and probably Opera sort object properties automatically

问题是: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 循环以任意顺序迭代对象的属性

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM