简体   繁体   English

为什么我的对象在for循环中从最后到第一

[英]why my object get from last to first in for loop?

i confuse about array 我对数组感到困惑

my data is 我的数据是

在此处输入图片说明

and my for loop 和我的for循环

 for (var data in statInfo["segment"][0]) {
       console.log(data)
 }

and my result is 我的结果是

data print is 数据打印为

segment5 segment4 segment3 segment2 segment1 区段5区段4区段3区段2区段1

thank you 谢谢

Enumeration of object properties is not alphabetical. 对象属性的枚举不是字母顺序的。

In fact it is left to implementations to decide . 实际上,由实施来决定

Most browsers implement according to order of property creation IIRC. 大多数浏览器根据属性创建IIRC的顺序实现。

If you need ordering use an Array , Map or Set . 如果需要订购,请使用ArrayMapSet

Finally, in ES2015, you can make an object iterable by defining your own iteration function, which can have any order or enumeration you need. 最后,在ES2015中,您可以通过定义自己的迭代函数使对象可迭代,该函数可以具有所需的任何顺序或枚举。

 var obj = { foo: '1', bar: '2', bam: '3', bat: '4', }; obj[Symbol.iterator] = iter.bind(null, obj); function* iter(o) { var keys = Object.keys(o); for (var i=0; i<keys.length; i++) { yield o[keys[i]]; } } for(var v of obj) { console.log(v); } // '1', '2', '3', '4' 

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

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