我正在尝试编写一个使用递归来合并两个字符串的函数。以下是我的代码,但我不知道为什么该函数返回undefined,特别是当我在基本情况下使用console.log时,它不会打印undefined,而是正确的值。
var str3=""
function merge(str1,str2){
if(str1.length==0||str2.length==0){
console.log(str3)
return str3;
}
else{
str3=str3+str1.substring(0,1)+str2.substring(0,1);
merge(str1.substring(1,str1.length),str2.substring(1,str2.length))
}
}
merge("AAA","BBB") //--> returns undefined but the console.log(str3) gives correct answer
return
之外,您还会使连续调用返回以最后一个结果为前缀的结果。例如:merge("CDE","123"); //==> "ABABABC1D2E3"
- Sylwester