Создать массив из иерархии JavaScript - PullRequest
0 голосов
/ 15 октября 2018

Пожалуйста, если кто-нибудь может помочь мне с проблемой, с которой я борюсь.

У меня есть такая иерархия:

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

Это означает, что A является родительским для Aname, а B, B является родительским для Bname и B1, B1 для B1name и B11 и т. Д. Как я могу построитьвложенный массив, использующий рекурсию javascript этой иерархии, выглядит следующим образом:

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

1 Ответ

0 голосов
/ 16 октября 2018

Как я понял, ваш ввод похож на

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