我正在努力在javascript中创建动态嵌套键。我的问题是我需要一个像这样的对象
{
"grandGrandFather": 'A',
"firstGrandFather": {
name: "AA",
children: {
first: 'AAA',
children: {
first: "AAAA"
}
}
},
"secondGrandFather": {
name: "AB",
first: 'ABA',
children: {
first: "ABAA",
second: "ABAB"
}
}
},
"thirdGrandFather": {
name: "AC",
children: {
name: "ACA"
}
}
}
这里的问题是我需要从某个地方获取这些数据,并且需要动态创建这些值。道具创作从第一级开始,一直到第四级。所以我的问题是如何在JS中创建动态密钥。我也知道您可以像这样在JS中创建动态键:
var obj = {
prop1: "a",
prop2: "b",
prop3:'c'
}
obj['prop4'] = 'd';
我也成功地创建了一个道具,但是当我需要将它们堆叠时,我会感到困惑,不胜感激。
有关上述对象的更多详细信息
在上面创建的对象中,我从数据库中获取数据,我需要动态添加 firstGrandFather,secondGrandFather,thirdGrandFather 。我也不知道他们需要定义的孩子道具是什么。有些人可能里面有配偶,年龄,工作道具,也许有些我也不知道我会得到多少。这些继续进行一到两个级别。
在php中,很容易在关联数组中轻松创建它们,但是我很难在JS中做到这一点。
答案 0 :(得分:1)
在ES6 + Docs here
中可以使用动态键基本上,语法是:
obj[variable] = value;
变量必须包含原始值。
对于堆栈,恐怕您必须习惯于使用点或括号表示法进行深键访问。您还可以将对象的属性分配给变量,然后访问其属性。 因此,如果obj是您示例中的对象:
const firstGrandfathersChildren = obj.firstGrandFather.children
它将分配以下内容:
{
first: 'AAA',
children: {
first: "AAAA"
}
}