2017年7月9日日曜日

JavaScript関数型プログラミング P105 ツリーを再帰で

ツリーなるデータ構造がむずかしい。

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 件のコメント:

コメントを投稿