我得到了这个物体。它有多个父母。
object;
var i=4;
我想知道的是这个
object.parent.parent.parent.parent; //4x because i=4
我该怎么说“ i == 4,所以我要父母的深度为4”,如:
object + 4x .parent
答案 0 :(得分:2)
您可以使用一个临时变量,并存储实际的对象引用,并以lokng的方式进行赋值,因为count的父属性不为null。
var object = { parent: { parent: { parent: { parent: 'target' } } } },
temp = object,
i = 4;
while (i--) temp = temp.parent;
console.log(temp);
如果您的对象中没有父母,则可以创建嵌套属性。
在这种情况下,您需要在循环外使用最后一个属性来分配最终值。
var object = {},
temp = object,
i = 4;
while (--i) {
temp.parent = {};
temp = temp.parent;
}
temp.parent = 'target';
console.log(object);
答案 1 :(得分:2)
这应该可以解决问题:
const obj = {};
const i = 4;
let prev = obj; // Keep track of where we currently are.
for(let j = 0; j < i; j++) {
prev.parent = {};
prev = prev.parent; // We have to go deeper.
}
console.log(obj);
i
确定所需的嵌套父级数,然后循环构建所需的输出。
您可以将for
循环的内容设置为单行,但出于可读性原因,我建议您这样做:
for(let j = 0; j < i; j++) {
prev = prev.parent = {}; // We have to go deeper.
}
答案 2 :(得分:-1)
我假设您的意思是您想要第4个父母。 如果实体的父级位于父级键上,则可以使用以下命令:
ionic serve