首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在javascript中制作递归嵌套数组?

如何在javascript中制作递归嵌套数组?
EN

Stack Overflow用户
提问于 2018-06-03 21:54:07
回答 2查看 60关注 0票数 -2

下面是我拥有的json:

代码语言:javascript
运行
复制
{
    "name": "test",
    "characteristics": [
        {
            "name": "A",
            "description": "",
            "comprisedOf": [
                {
                    "name": "A1",
                    "description": "",
                    "comprisedOf": [
                        {
                            "name": "A1.1",
                            "description": "",
                            "value": "10"
                        },
                        {
                            "name": "A1.2",
                            "description": "",
                            "value": "5"
                        }
                    ]
                },
                {
                    "name": "A2",
                    "description": "",
                    "value": "100"
                },
                {
                    "name": "A3",
                    "description": "",
                    "value": "20"
                },
                {
                    "name": "A4",
                    "description": "",
                    "value": "50"
                }
            ]
        },
        {
            "name": "B",
            "description": "",
            "value": "10"
        }
    ]
}

这里我有两个特征对象"test“-A和B.These 2对象可能有也可能没有"comprisedOf”数组。例如A有“comprisedOf”数组,而B没有。这些comprisedOf数组还可以或可以不包括对象数组。

现在我要做一个数组,就像下面给出的数组一样:

代码语言:javascript
运行
复制
[
    {
        "name": "test",
        "children": [
            {
                "name": "A",
                "children": [
                    {
                        "name":"A1",
                        "children:: [
                            {
                                "name":  "A1.1"
                            },
                            {
                                "name": "A1.2"
                            }
                        ]
                    },
                    {
                        "name": "A2"
                    },
                    {
                        "name": "A3"
                    },
                    {
                        "name": "A4"
                    }
                ]
            },
            {
                "name": "B"
            }
        ]
    }
]

如何在第一个数组的基础上递归形成这个数组?

非常感谢!

编辑:-这是我尝试过的:

代码语言:javascript
运行
复制
var makeChildrenAll = function(dataChar){
    dataChar.forEach(function(char){
        if(char.comprisedOf) {
            makeChildrenAll(char.comprisedOf);                                
        }
        childrenData.push({
            name: char.name,
            description: char.description,
           children: childrenData
        });
    });
};
makeChildrenAll(dataChar);
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50667125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档