我有以下結構的Prototype.js和關聯數組
var menu = new Object('Submenu A','Submenu B','Submenu C','Submenu D');
menu['Submenu A']=new Object();
menu['Submenu A']['Option A']= 'foo blah text';
menu['Submenu A']['Option B']= 'blah more text';
menu['Submenu B']['Option A']= 'blah blah';
menu['Submenu B']['Option B']= 'texty text';
...
etc.
這被遍歷for..in循環使用原型時由於延伸與方法的類,打破的關聯數組(對象) likeJSON()和camelise()
我試圖使用Prototype的.each方法,但它報錯菜單['子菜單A']錯誤報告是不確定的,它似乎無法找到定義的選項它。
迭代原型中關聯數組的正確方法是什麼?
進一步澄清(感謝迄今爲止的答案)。 我正在慢慢地將項目遷移到使用原型,但它有大量原型不兼容的代碼。有問題的代碼位於其他幾個文件使用的庫中。 如通過函數,initialize_menu打來電話,包含的代碼
for (var i=0; i < menu.length; i++) {
populate_sub_menu(menu[i])
}
子菜單功能的結構是這樣
function populate_sub_menu(subMenu){
for (var option in menu[subMenu]) {
html+=menu[subMenu][option]+'html'+subMenu+option;
}
}
我留下了關於獲得HTML元素並使得AREN代碼代碼與問題無關。
謝謝,我改寫了對象,你建議的方式,現在它的工作中都的Prototype.js和在我的項目非原型頁面。 – borkencode 2009-01-30 21:25:58