【发布时间】:2020-07-02 22:05:32
【问题描述】:
我在学习时遇到了一个例子。当我稍作修改时,它将无法正常工作
function findSolution(target) {
function find(current, history) {
if (current == target) {
return history;
} else if (current > target) {
return null;
} else {
return find(current + 5, `(${history} + 5)`) ||
find(current * 3, `(${history} * 3)`);
}
}
return find(1, "1");
}
console.log(findSolution(24));
这就是例子。但是,当我将 else if 语句中的 null 更改为如下示例中的字符串时。 else if 语句完全被忽略。下面的例子
function findSolution(target) {
function find(current, history) {
if (current == target) {
return history;
} else if (current > target) {
return "impossible";
} else {
return find(current + 5, `(${history} + 5)`) ||
find(current * 3, `(${history} * 3)`);
}
}
return find(1, "1");
}
console.log(findSolution(24));
在上面,if else 在忽略条件的情况下继续运行
为什么会这样?
【问题讨论】:
标签: javascript