HA Treemap map()
3424 ワード
このコードは学院テストコードで、特に説明はありません.そしてこれchildren要素を巡るときにmap()を再呼び出します.
再帰呼び出しのたびに、初期値に設定されたノードはツリー部分の親ノードとなり、子ノードは再び再帰呼び出しされます.
この操作を繰り返すと、leafノードはmap()の実行後に親ノードにアタッチされ、再帰呼び出しが終了するため、最後に
右上の木のようです.
Tree.prototype.map = function(callback) {
return this.children.reduce(function(tree, child) {
return tree.addChild(child.map(callback));
}, new Tree(callback(this.value)));
};
reduce를 이용해 새로 만들어질 트리의 root node를 reduce 함수의 초기값으로 설정한다.
-> new Tree(callback(this.value));
1 2
2 3 => 4 6
4 5 6 7 8 10 12 14
再帰呼び出しのたびに、初期値に設定されたノードはツリー部分の親ノードとなり、子ノードは再び再帰呼び出しされます.
この操作を繰り返すと、leafノードはmap()の実行後に親ノードにアタッチされ、再帰呼び出しが終了するため、最後に
右上の木のようです.
Reference
この問題について(HA Treemap map()), 我々は、より多くの情報をここで見つけました https://velog.io/@jing07161/HA-Treemap-mapテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol