var json_obj =
{
"40": [{ "title": "all", "name": "all promotions", "id": "all" },{}],
"20": { "title": "best_room_rate", "name": "best room rate", "id": "best_room_rate" },
"10": { "title": "summer rate", "name": "summer rate", "id": "30" }
}
for (var item in json_obj) {
alert(item);//10->20->40
}
請(qǐng)問這里輸出結(jié)果為什么不是40->20->10呢
如果想要順序遍歷一組數(shù)據(jù),請(qǐng)使用for
Chrome和Opera的JavaScript解析引擎遵循的是新版ECMA-262第五版規(guī)范。因此,使用for-in語句遍歷對(duì)象屬性時(shí)遍歷書序并非屬性構(gòu)建順序。而IE6、IE7、IE8、Firefox、Safari的JavaScript解析引擎遵循的是較老的ECMA-262第三版規(guī)范,屬性遍歷順序由屬性構(gòu)建的順序決定。
對(duì)象和數(shù)組不一樣,數(shù)組是順序存儲(chǔ)結(jié)構(gòu),而對(duì)象不是。不同的javascript引擎對(duì)對(duì)象的屬性讀取順序都不一樣。
瀏覽器的問題,貌似chrome會(huì),firefox不會(huì)