变量的多个成员
Multiple Members by variable
我明白了 object。它有多个parents。
object;
var i=4;
我想知道的是:
object.parent.parent.parent.parent; //4x because i=4
我怎么说"i ==4, so i want the depth 4 of parents",比如:
object + 4x .parent
您可以获取一个临时变量并存储实际的对象引用并作为 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);
我假设你的意思是你想要第 4 个 parent。
如果实体的 parent 位于 parent 键,您可以使用类似的东西:
let parent = object;
for (let parentCounter = 0; parentCounter < i; parentCounter++)
parent = parent.parent;
这应该可以解决问题:
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.
}
我明白了 object。它有多个parents。
object;
var i=4;
我想知道的是:
object.parent.parent.parent.parent; //4x because i=4
我怎么说"i ==4, so i want the depth 4 of parents",比如:
object + 4x .parent
您可以获取一个临时变量并存储实际的对象引用并作为 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);
我假设你的意思是你想要第 4 个 parent。 如果实体的 parent 位于 parent 键,您可以使用类似的东西:
let parent = object;
for (let parentCounter = 0; parentCounter < i; parentCounter++)
parent = parent.parent;
这应该可以解决问题:
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.
}