use*_*130 0 javascript algorithm recursion
我在下面的代码中有一个主要缺陷.每次递归工作(即函数被多次调用)时,由于var result = []表达式,它会覆盖数组.那么,为了避免这种情况,最好的方法是什么.我真的不想把结果变量放在函数的范围之外.我正在寻找的是最佳实践和更好的方法.
function getElementNames(obj){
//below line overwrites the previous result every time this function runs
var result = [];
if(!obj.parent){
result.push(obj.name);
}
else {
result.push(obj.name);
getElementNames(obj['parent'])
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
也许你改变了整个结构.我建议返回一个数组并在必要时进行连接.
function getElementNames(obj) {
var result = [obj.name];
if (obj.parent) {
result = result.concat(getElementNames(obj.parent));
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |