var data = {
'4': 'first',
'3': 'second',
'2': 'third',
'1': 'fourth'
};
for (var i in data) {
console.log(i + " " + data[i])
}
IE11, chrome31, firefox23的打印如下:
1 fourth
2 third
3 second
4 first
var obj = {
"first":"first",
"zoo":"zoo",
"2":"2",
"34":"34",
"1":"1",
"second":"second"
};
for (var i in obj) { console.log(i); };
IE11, chrome31, firefox23的打印如下:
1
2
34
first
zoo
second
事实上,它不一定根据定义时的顺数输出,所有浏览器的最新版本现在都按chrome执行,先把当中的非负整数键提出来,排序好输出,然后将剩下的定义时的顺序输出。由于这个奇葩的设定,让avalon的ms-with对象排序不按预期输出了。只能强制用户不要以纯数字定义键名:
var obj = {
"first":"first",
"zoo":"zoo",
"2a":"2",
"34u":"34",
"1l":"1",
"second":"second"
};
for (var i in obj) { console.log(i+" "+obj[i]); };
IE11, chrome31, firefox23的打印如下:
first first
zoo zoo
2a 2
34u 34
1l 1
second second