首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以从递归搜索函数返回两个值吗?

我可以从递归搜索函数返回两个值吗?
EN

Stack Overflow用户
提问于 2017-01-27 05:15:23
回答 1查看 59关注 0票数 0

陷入了一个奇怪的JavaScript函数式编程漏洞。

这就是它:

代码语言:javascript
复制
// Given an integer n, can n be reached by some combination of plus five and times three?

function recursiveSearch (n) {
  // if attempt matches return success
  // if attempt produces neutral keep trying
  // if attempt matches less than 1 return failure
  if (n === 1) return true
  if (n > 1) {
    return recursiveSearch( n-5 ), recursiveSearch( n/3 )
  }
  else return false
}

console.log(1, recursiveSearch(1) )
console.log(3, recursiveSearch(3) )
console.log(6, recursiveSearch(6) )
console.log(7, recursiveSearch(7) )
console.log(9, recursiveSearch(9) )
console.log(13, recursiveSearch(13) )
console.log(51, recursiveSearch(51) )
console.log(247, recursiveSearch(247) )

我显然不能从一个函数返回两个不同的东西,但如果我不返回,我就不能在我的搜索中扩展:

代码语言:javascript
复制
  if (n > 1) {
    recursiveSearch( n-5 )
    recursiveSearch( n/3 )
  }

这只会产生不确定的东西。

EN

回答 1

Stack Overflow用户

发布于 2017-01-27 05:16:10

好的,答案显然是显而易见的:)

使用or语句。

代码语言:javascript
复制
if (n > 1) {
  return recursiveSearch( n-5 ) || recursiveSearch( n/3 )
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41883110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档