Javascript 递归地添加到JS中的字符串

Javascript 递归地添加到JS中的字符串,javascript,recursion,Javascript,Recursion,我正在处理一个递归问题,返回一个“hi”字符串,其中第一个“hi”有一个大写字母H,字符串以感叹号结尾。到目前为止,我有下面的代码,但我不确定如何防止后续出现大写H的“hi”。欢迎提供任何指导 功能问候语(n){ 如果(n==0){ 返回“”; }else if(n==1){ 回答“嗨!” }否则{ 返回`${'Hi'+问候语(n-1)}` } } log(问候语(3))//应该返回hihi! console.log(问候语(5))//应该返回HIHI解决问题的一种方法是向函数传递一个标志,指

我正在处理一个递归问题,返回一个“hi”字符串,其中第一个“hi”有一个大写字母H,字符串以感叹号结尾。到目前为止,我有下面的代码,但我不确定如何防止后续出现大写H的“hi”。欢迎提供任何指导

功能问候语(n){
如果(n==0){
返回“”;
}else if(n==1){
回答“嗨!”
}否则{
返回`${'Hi'+问候语(n-1)}`
}
}
log(问候语(3))//应该返回hihi!

console.log(问候语(5))//应该返回HIHI解决问题的一种方法是向函数传递一个标志,指示这是否是第一次调用,并且只有在这种情况下才将
hi
大写。请注意,通过返回
,可以稍微简化代码
n==0
时;那么您不需要使用特殊情况
n==1

函数问候语(n,first=true){
如果(n==0){
返回“!”;
} 
否则{
返回`${(第一个?'Hi':'Hi')+问候语(n-1,false)}`
} 
}
log(问候语(3))//应该返回hihi!
console.log(问候语(5))//应该返回HIHI您的代码中只缺少一个
.toLowerCase()

`${'Hi' + greeting(n - 1).toLowerCase()}`
您不需要
n==1
步骤

功能问候语(n){
如果(n==0){
返回“!”;
}否则{
返回`${'Hi'+问候语(n-1).toLowerCase()}`
//------------------------------^^^^^^^^^^^^^^
}
}
log(问候语(3))//应该返回hihi!

console.log(问候语(5))//应该返回HIHI我需要它返回Hihihi!我当前的代码将所有H's大写,但代码中缺少一个
。toLowerCase()
<代码>${'Hi'+问候语(n-1).toLowerCase()}
。您不需要
n==1
步骤。