在对象中创建动态键

时间:2018-11-24 16:20:07

标签: javascript arrays object

我正在努力在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中做到这一点。

1 个答案:

答案 0 :(得分:1)

在ES6 + Docs here

中可以使用动态键

基本上,语法是:

obj[variable] = value;

变量必须包含原始值。


对于堆栈,恐怕您必须习惯于使用点或括号表示法进行深键访问。您还可以将对象的属性分配给变量,然后访问其属性。 因此,如果obj是您示例中的对象:

const firstGrandfathersChildren = obj.firstGrandFather.children

它将分配以下内容:

{
    first: 'AAA',
        children: {
            first: "AAAA"
        }
}