С учетом строки для пути свойств объекта, как я могу установить это свойство динамически.
Учитывая этот образец объекта:
var obj = {
a: {
b: [ { c: 'Before' } ]
}
};
Он должен иметь возможность установить значение с помощью вспомогательной функции, например:
setToValue(obj, 'After', 'a.b.0.c');
Я попробовал его со следующим кодом. Но родитель является копией, если переменная не является ссылкой.
function setToValue(obj, value, path) {
var arrPath = path.split('.'),
parent = obj;
for (var i = 0, max = arrPath.length; i < max; i++) {
parent = parent[arrPath[i]];
}
parent = value;
}