Я пытался создать функцию, способную установить определенное значение объекта, имеющий «путь» свойства:node.js установить свойство из строки имени свойства
reflectionSet = function(obj, propString, value) {
var current = obj;
var splitted = propString.split('.');
splitted.forEach(function(k) {
current = current[k];
})
current = value;
}
var test = {
a: {
s: 'asd',
g: 'asasdasdd'
}
};
reflectionSet(test, 'a.g', "otherValue");
и это должно стать:
{
a: {
s: 'asd',
g: 'otherValue'
}
}
к сожалению, это не работает .. Спасибо
Это потому, что JavaScript является "передача по значению". Это означает, что когда вы собираете переменную g, вы не будете изменять значение в объекте. Просто значение, которое вы собрали в объекте. [Здесь] (http://stackoverflow.com/questions/6605640/javascript-by-reference-vs-by-value) является более информативным объяснением – magnudae