您的位置:首页 > 其它

for in语句与for in语句输入顺序问题

2016-04-29 15:48 423 查看
for in语句是一种精准的迭代语句,可以用来枚举对象的属性

var box={//这个对象有三个属性name、age、height
'name':'李某某',
'age':28,
'height':178
};

for(var p in box){
alert(p);//分别弹出name、age、height
}


for in 循环的输出顺序问题

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执行,先把当中的非负整数键提出来,排序好输出,然后将剩下的定义时的顺序输出。由于这个奇葩的设定,只能强制用户不要以纯数字定义键名:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: