多个变量成员

问题描述 投票:-3回答:4

我有这个对象。它有多个父母。

    object;
    var i=4;

我想知道的是:

    object.parent.parent.parent.parent; //4x because i=4

我怎么说“ i == 4,所以我要父母的深度为4”,像这样:

    object + 4x .parent
javascript parent
4个回答
1
投票

这应该可以解决问题:

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确定所需的嵌套父级数,然后循环构建所需的输出。


1
投票

您可以使用一个临时变量,并存储实际的对象引用,并且由于count的父属性不为null,所以将其定位为lokng。

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);

0
投票

您可以使用课本递归来做到这一点:


-1
投票

我假设您的意思是您想要第4个父母。如果实体的父级位于父级键上,则可以使用类似以下内容:

© www.soinside.com 2019 - 2024. All rights reserved.