ツリーなるデータ構造がむずかしい。
class Tree {
constructor(root) {
this._root=root;
}
static map(node,fn,tree=null){
node.value=fn(node.value);
if(tree===null) {
tree=new Tree(node);
}
if(node.hasChildren()) {
_.map(node.children,function (child) {
Tree.map(child ,fn, tree);
}); ここで、node.childrenという配列のmapを行うが、結局はひとつひとつのノードに対して、Tree.mapを施す(fn関数を適用)ということになる
}
return tree;
}
get root(){
return this._root;
}
}
最初、treeの変化が気になったが、それよりも、Tree.mapにより、Nodeのvalueの形がすべて変わるということが ポイントであるようだ。
0 件のコメント:
コメントを投稿