У меня есть ввод такого вложенного объекта.
{
"13": {
"6B": {
"4A": {
"1C": false,
"2A": {
"1A": false
},
"3B": {
"1B": false
}
},
"4B": {
"1C": false,
"2A": {
"1A": false
},
"3B": {
"1B": false
}
}
}
}
}
И я хотел бы получить вывод всех возможных путей к самому глубокому дочернему элементу, подобному этому.
[
["13", "6B", "4A", "1C"],
["13", "6B", "4A", "2A", "1A"],
["13", "6B", "4A", "3B", "1B"],
["13", "6B", "4B", "1C"],
["13", "6B", "4B", "2A", "1A"],
["13", "6B", "4B", "3B", "1B"]
]
На самом деле, код вроде этого работает. Но я хочу, чтобы результат был во вложенном массиве, а не в строке.
function flatten(obj, prev) {
data=[];
if(!prev) prev='';
Object.keys(obj).map(k=>{
if(obj[k]) {
data = [...data, ...flatten(obj[k], prev+k+"-")];
} else {
data = [prev+k];
}
});
return data;
}
Как это сделать в Javascript?