Object.keys()与 for...in 遍历对象,输出的结果为什么是顺序的
问题:同上。谢谢
var obj = { "b1" : "a", "b2" : "b2", 7: "c", 4: 'dd'};
console.log(Object.keys(obj)); //输出["4", "7", "b1", "b2"]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据 MDN 上的解释
Object.key 的顺序是根据
for...in
决定的规范里说到
而且
Object 是个无序的集合
所以应该是各个浏览器实现
for...in
Object 的结果吧这里也有一些讨论
http://stackoverflow.com/questions/280713/elements-order-in-a-for-in-loop
http://stackoverflow.com/questions/30076219/does-es6-introduce-a-well-defined-order-of-enumeration-for-object-properties
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
这里有
Object.keys
的文档首先
Object.keys
和for in
顺序没任何区别答案很简单只有数字的部分会放到最前面然后排序 其他部分会放到后面 这只是js的处理机制,
根据一般的代码规范你这样使用本身就不合理~有些语言直接报错~
可以参看 这个书的介绍 http://exploringjs.com/es6/ch_oop-besides-classes.html#sec_iterating-property-keys
Object.keys()
和for...in
输出顺序一样输出顺序规则为: