您的位置:首页 > Web前端 > JavaScript

js 递归下的循环

2016-06-17 10:57 417 查看
的递归下的循环不能使用forEach 可以使用for代替

错误写法

// 获取完整名字
var getFullName = function(code, resultName) {
if (code === '0') {
return resultName;
} else {
popup.fullData.forEach(function (val) {
if (code === val.code) {
var text = val.text + resultName;
return getFullName(val.parentcode, text);
}
});
/*for (var i = 0, length = popup.fullData.length; i < length; i++) {
if (code === popup.fullData[i].code) {
var text = popup.fullData[i].text + resultName;
return getFullName(popup.fullData[i].parentcode, text);
break;
}
}*/
}
};


正确写法

// 获取完整名字
var getFullName = function(code, resultName) {
if (code === '0') {
return resultName;
} else {
for (var i = 0, length = popup.fullData.length; i < length; i++) {
if (code === popup.fullData[i].code) {
var text = popup.fullData[i].text + resultName;
return getFullName(popup.fullData[i].parentcode, text);
break;
}
}
}
};


可能原因是foreach中的return是终端循环作用 而不是返回总用 具体原因我也不知道 求大神指教
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: