![](https://i.stack.imgur.com/QTLVb.png)
как преобразовать приведенную выше структуру данных в
[['Tywin'],['Jamie','Cersi', 'Tyrion'], ['Joeffry', 'Myrcella', 'Tomen', 'Lin']]
Вот мой код:
let Tree = function(name) {
this.name = name;
this.children = [];
}
Tree.prototype.addChild = function(parent, name) {
const node = lannister.contains(parent);
node.children.push(new Tree(name));
}
var lannister = new Tree('Tywin');
lannister.addChild('Tywin', 'Jamie');
lannister.addChild('Tywin', 'Cersi');
lannister.addChild('Tywin', 'Tyrion');
lannister.addChild('Cersi', 'Joffery');
lannister.addChild('Cersi', 'Myrcella');
lannister.addChild('Cersi', 'Tomen');
lannister.addChild('Tyrion', 'Lin');
bfs();
function bfs(check) {
// console.log('traverseBFS called: ', this);
bfsArray = [];
var queue = [this];
var node;
var tempAr = [];
bfsArray.push([this.name]);
while (queue.length > 0) {
node = queue.shift();
callback(node.name, node.children.length);
console.log('current node is: ', node, node.children.length);
for (var i = 0; i < node.children.length; i++) {
queue.push(node.children[i]);
tempAr.push(node.children[i].name);
if (i === node.children.length - 1) {
// console.log('The bfs is ', bfsArray, tempAr);
bfsArray.push(tempAr);
tempAr = [];
}
}
}
function callback(itm, length) {
// console.log('itm is: ', itm);
if (itm === check) {
node;
}
}
};