为什么这段代码返回未定义?

时间:2015-12-16 03:37:38

标签: javascript recursion

为什么这个函数返回undefined?结果显然具有非空值,并且调用正在输入第一个if语句,因为它打印了所需的输出。

function Swap(str, result) {
    if (str == "") {
      console.log(result); 
      return result;
    }
    else if (str[0] == str.toUpperCase().substring(0,1)) {
      var newResult = result + str.toLowerCase().substring(0,1);
      Swap(str.replace(str[0], ""), newResult);
    }
    else {
      var newResult = result + str.toUpperCase().substring(0,1);
      Swap(str.replace(str[0], ""), newResult);
    }
   }

console.log(Swap("HelloW",""));

1 个答案:

答案 0 :(得分:2)

调用Swap("HelloW", "")将进入第二个if案例(str以大写字母开头),调用Swap("elloW", "h")不返回任何内容。你在其他两个分支上也需要return,而不仅仅是第一个分支。