从层次结构javascript创建数组

时间:2018-10-15 15:10:17

标签: javascript arrays recursion multidimensional-array nested

如果有人可以帮助我解决我所遇到的问题,请。

我有这个层次结构:

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

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

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

1 个答案:

答案 0 :(得分: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;
    })
}