小编bor*_*ode的帖子

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.
Run Code Online (Sandbox Code Playgroud)

这是在for..in循环上迭代的,当使用原型时由于使用toJSON()和camelise()等方法扩展类而中断

我尝试过使用Prototype的.each方法但是它错误地报告菜单['子菜单A']是未定义的,它似乎找不到它下面定义的选项.

在原型中迭代关联数组的正确方法是什么?

进一步澄清(感谢目前为止的答案).我正在慢慢地将一个项目迁移到使用原型,但是它有大量的代码尚未与原型兼容.有问题的代码位于其他几个文件使用的库中.代码由函数initialize_menu调用并包含代码

for (var i=0; i < menu.length; i++) {
    populate_sub_menu(menu[i])
}
Run Code Online (Sandbox Code Playgroud)

子菜单功能的结构如下

function populate_sub_menu(subMenu){
    for (var option in menu[subMenu]) {
        html+=menu[subMenu][option]+'html'+subMenu+option;
    }
}
Run Code Online (Sandbox Code Playgroud)

我要删除有关获取html元素的代码以及与问题无关的代码.

javascript prototypejs

1
推荐指数
1
解决办法
2463
查看次数

标签 统计

javascript ×1

prototypejs ×1