在阅读本书时雄辩地介绍了Javascript和我碰到这个递归函数时我无法理解我的头。该函数需要一系列的参数和返回的如何,这个数字可以通过添加5或数由1下面的代码乘以达到字符串的解决方案:递归困难
function findSolution(target) {
function find(start, history) {
if (start == target)
return history;
else if (start > target)
return null;
else
return find(start + 5, "(" + history + " + 5) ") ||
find(start * 3, "(" + history + " * 3) ");
}
return find(1, "1");
}
console.log(findSolution(24));
// ! (((1 * 3) + 5) * 3)
我特别不明白的部分在else语句中,它可以使用||返回不同的函数运营商。提前致谢!
它返回不同功能的*结果*。如果第一个find返回null,它将尝试第二个find并返回它。 – Will