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