【发布时间】:2020-07-20 18:25:33
【问题描述】:
我不想从这段代码中获取或想要任何东西。我只是对以下代码的一部分感到困惑。作者使用或|| 运算符返回了一个值。我的问题是什么时候返回哪个值?
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))
这是困扰我的部分代码
return find (current + 5, `${history} + 5)`) ||
find(current * 3, `(${history} * 3)`)
谁能告诉我,返回时的值是多少?为什么?
【问题讨论】:
-
如果左边是truthy则返回,否则返回右边。
-
@NicholasTower 谢谢!请原谅我的愚蠢。我真正的困惑是,这里的真假将如何确定?我的意思是假设 ``` find (current + 5,
${history} + 5)) ``` 当它变成假的时候? -
@YuryTarabanko 谢谢!请原谅我的愚蠢。我真正的困惑是,这里的真假将如何确定?我的意思是假设 ``` find (current + 5, ${history} + 5)) ``` 当它变成假的时候?
-
@kabirsumn
return null分支是假的。您可以在 developer.mozilla.org/en-US/docs/Glossary/Falsy 处阅读有关虚假值的信息。也没什么好担心的,我们都是初学者。 :)
标签: javascript function recursion