Я надеюсь, что кто-то может помочь мне с этим 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..., чтобы повторить через массив, но я не смог разработать способ создания вложенных объектов.
Если вы получили это очень большое спасибо за то, что нашли время, чтобы прочитать, даже если вы не можете помочь.