我对数组
感到困惑我的数据是
和我的for循环
for (var data in statInfo["segment"][0]) {
console.log(data)
}
我的结果是
数据打印
segment5 segment4 段3 分段2 SEGMENT1
谢谢
答案 0 :(得分:2)
对象属性的枚举不是按字母顺序排列的。
实际上它是left to implementations to decide。
大多数浏览器根据属性创建顺序IIRC实施。
如果您需要订购,请使用Array
,Map
或Set
。
最后,在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'