Eri*_*uth 2 javascript recursion node.js
我需要导出一个递归函数.可以exports从函数中引用对象吗?(我很担心循环参考).
exports.traverse = function(node, cb){
if(node.hasOwnProperty("value")){
cb(node.value);
}else if(node.hasOwnProperty("children")){
node.children.forEach(function(child){
exports.traverse(child, cb); // Err, is this ok ?
});
}
}
Run Code Online (Sandbox Code Playgroud)
它是好的,它的工作原理,但有一个清洁的解决方案:
exports.traverse = function traverse(node, cb){
if(node.hasOwnProperty("value")){
cb(node.value);
}else if(node.hasOwnProperty("children")){
node.children.forEach(function(child){
traverse(child, cb);
});
}
}
Run Code Online (Sandbox Code Playgroud)