从层次结构javascript创建数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从层次结构javascript创建数组相关的知识,希望对你有一定的参考价值。

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

我有这个层次结构:

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]]]]
答案

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

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;
    })
}

以上是关于从层次结构javascript创建数组的主要内容,如果未能解决你的问题,请参考以下文章

累积和 - 选择层次结构的部分

JavaScript 代码片段

多片段层次结构中的菜单膨胀问题

javascript常用代码片段

如何从字符串数组在 json 字符串中创建层次结构?

将多维数组从mysql层次结构表填充到php