各浏览器 for-in 遍历对象属性的顺序差异
最近一个项目的开发中,初始化导航菜单的数据,后台给定的数据是 JavaScript 对象,其键是菜单的 id (数字),值是菜单对象。数据如下:
var menuList = {
'26':{'name':'新闻','model':'list'},
'23':{'name':'娱乐','model':'list'},
'25':{'name':'体育','model':'list'},
'21':{'name':'读书','model':'list'},
'24':{'name':'时尚','model':'list'},
'22':{'name':'女性','model':'list'}
};
var info = document.getElementById('info');
for (menu in menuList) {
info.innerHTML += menu + " : " + menuList[menu]['name'] + "<br/>";
}
在 IE6、IE7、IE8、Firefox、Safari(包括 iPhone)中,遍历得到的结果,和给定的一致:
26 : 新闻 23 : 娱乐 25 : 体育 21 : 读书 24 : 时尚 22 : 女性
而在 IE9、Chrome、Opera、Android 中,输出的顺序则是:
21 : 读书 22 : 女性 23 : 娱乐 24 : 时尚 25 : 体育 26 : 新闻






