如何通过引用分配对象属性。我的对象看起来像这样:
obj = {
level: {
level: {
level: {}
}
}
}
我的代码是这样的:
var obj = {
level: {
level: {
level: {}
}
}
};
do {
var level = obj.level;
} while(Object.keys(level).length != 0);
level = {
newPro: 'Some value'
}
但是最后一级属性的任何变化。
预期产出:
{
level: {
level: {
level: {
newPro: 'Some value'
}
}
}
}
答案 0 :(得分:1)
你的do-while
while(Object.keys(level).length != 0)
由于level
总是obj.level
并且永不改变,因此陷入了无限循环。
你几乎就在那里,只是
newPro
),而不是直接指定值。
var obj = {
level: {
level: {
level: {}
}
}
};
var temp = obj;
while (Object.keys(temp).length > 0) {
temp = temp.level;
}
temp.newPro = 'Some value'
console.log(obj);
答案 1 :(得分:0)
您可以测试下一个level
是否存在。
如果存在,请将level
的值作为temp
的新值,以用于新的while
循环。
如果没有,请为临时对象分配一个新属性。
var object = { level: { level: { level: {} } } },
temp = object;
while (temp.level) {
temp = temp.level;
}
temp.newPro = 'Some value';
console.log(object);