我有以下结构的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