- なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
144 :デフォルトの名無しさん[sage]:2015/12/14(月) 21:30:28.83 ID:lwFUcSQC - function NodeIterator(node, childNodesName) {
this._stack = [node]; this._name = childNodesName; } NodeIterator.prototype.hasNext = function() { return this._stack.length > 0; } NodeIterator.prototype.next = function() { var node = this._stack.pop(); if (node) { for (var i = node[this._name].length -1; i > -1; --i) { this._stack.push(node[this._name][i]); } } return node; } ノードの親や深さも欲しい時は、スタックに積むノードをオブジェクトでラップして親の参照や深さを持たせればいいかも
|
|