我正在解决一个递归问题,该问题返回一个“hi”字符串,其中第一个“hi”的大写字母 H 并且该字符串以感叹号结尾。到目前为止,我有下面的代码,但我不确定如何防止随后出现大写 H 的“hi”。欢迎任何指导。
function greeting(n) {
if (n === 0) {
return "";
} else if (n === 1) {
return "Hi!"
} else {
return `${'Hi' + greeting(n - 1)}`
}
}
console.log(greeting(3)) // should return Hihihi!
console.log(greeting(5)) // should return Hihihihihi!
解决问题的一种方法是将一个标志传递给函数,指示这是否是第一次调用,并且只有在这种情况下才将hi
。请注意,您可以通过返回一个稍微简化代码!
when n == 0
;那么你不需要特殊情况n == 1
:
function greeting (n, first = true) {
if (n === 0) {
return "!";
}
else {
return `${(first ? 'Hi' : 'hi') + greeting(n - 1, false)}`
}
}
console.log(greeting(3)) // should return Hihihi!
console.log(greeting(5)) // should return Hihihihihi!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)