从层次结构javascript创建数组

问题描述 投票:-2回答:1

如果有人能帮助我解决我正在努力的问题。

我有这个层次结构:

A
-Aname
-B
--Bname
--B1
---B1name
---B11
----B11name
--B2
---B2name
---B21
----B21name
-C
--Cname
--C1
---C1name

这意味着A是Aname和B的父级,B是Name的父级,B1,B1或B1名称和B11等。如何使用此层次结构的javascript递归构建嵌套数组,如下所示:

[A[Aname, B[Bname, B1[B1name B11[B11name]], B2[B2name, B21[B21name]]], C[Cname, C1[C1name]]]]
javascript arrays recursion multidimensional-array nested
1个回答
4
投票

正如我所理解的那样,你的意见就像

var obj = {
    A: {    
        Aname: {},
        B:{
            Bname: {},
            B1:{}
        }
    }
};

和输出就像

[["Aname",["Bname","B1"]]]

所以这是你的解决方案:

function rfun(obj){
    return Object.keys(obj).map(item=>{
        return Object.keys(obj[item]).length ? rfun(obj[item]) : item;
    })
}
© www.soinside.com 2019 - 2024. All rights reserved.