【发布时间】:2011-07-25 23:24:00
【问题描述】:
我希望有人可以帮助我处理这个 Javascript。
我有一个名为“设置”的对象,我想编写一个向该对象添加新设置的函数。
新设置的名称和值以字符串形式提供。然后将给出设置名称的字符串用下划线分割成一个数组。新设置应该通过创建新的嵌套对象添加到现有的“设置”对象中,该对象的名称由数组的每个部分给出,除了最后一部分应该是一个给出设置值的字符串。然后我应该能够参考设置,例如提醒它的价值。我可以像这样以静态方式做到这一点......
var Settings = {};
var newSettingName = "Modules_Video_Plugin";
var newSettingValue = "JWPlayer";
var newSettingNameArray = newSettingName.split("_");
Settings[newSettingNameArray[0]] = {};
Settings[newSettingNameArray[0]][newSettingNameArray[1]] = {};
Settings[newSettingNameArray[0]][newSettingNameArray[1]][newSettingNameArray[2]] = newSettingValue;
alert(Settings.Modules.Mediaplayers.Video.Plugin);
...创建嵌套对象的部分正在执行此操作...
Settings["Modules"] = {};
Settings["Modules"]["Video"] = {};
Settings["Modules"]["Video"]["Plugin"] = "JWPlayer";
但是,由于构成设置名称的部分数量可能会有所不同,例如newSettingName 可以是“Modules_Floorplan_Image_Src”,我想使用诸如...的函数动态地执行此操作。
createSetting (newSettingNameArray, newSettingValue);
function createSetting(setting, value) {
// code to create new setting goes here
}
谁能帮我弄清楚如何动态地做到这一点?
我认为那里必须有一个 for...循环来遍历数组,但我还没有找到创建嵌套对象的方法。
如果您已经走到了这一步,非常感谢您抽出时间阅读,即使您无能为力。
【问题讨论】:
标签: javascript arrays object dynamic nested