JavaScript: доступ к объекту (массив) по строке записи массива
Я хотел бы получить доступ к объекту, только если известен его строковый путь в виде массива.
1.) есть объект, где
root["obj1"]["obj2"] = 1;
(в общем случаеroot["obj1"]...["objN"]
)
2.) У меня есть ТОЛЬКО известная строка objectPath:
var objectPath = 'root["obj1"]["obj2"]'
3.) Мне нужно не только прочитать объект, но и установить его значение, как
objectPath = 2;
//so root["obj1"]["obj2"] === 2
Насколько я понимаю
может быть несколько опций с eval (), но он получает значение, а не переменную;
можно перебрать все объекты root, выполнить преобразование в «root.obj1.obj2» (это не так, поскольку «obj1» легко может быть «obj with space1») и проверить, равна ли данная строка текущему объекту в петля.
Ссылка по теме:Доступ к дочерним свойствам объекта с использованием строки нотации