为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在明确告诉函数返回 true 时函数返回 undefined?

为什么在明确告诉函数返回 true 时函数返回 undefined?

慕码人2483693 2021-09-30 15:14:45
我试图解决以下编码练习。我们有两个特殊字符。第一个字符可以用一位 0 表示。第二个字符可以用两位(10 或 11)表示。现在给出一个由几个位表示的字符串。返回最后一个字符是否必须是一位字符。给定的字符串将始终以零结尾。例子:输入:bits = [1, 0, 0] 输出:真以下是我对上述挑战的解决方案。为什么这是回归undefined?如果我使用 [1,0,1,0] 作为输入,它应该返回true但我得到undefined. 我明确地写true在 return 语句中,而不是变量的结果。var isOneBitCharacter = function(bits) {  console.log(bits);    var length = bits.length;    if (length == 1) {      return true;    }    if (length == 0) {return false;}    if (length == 2 && bits[0] === 1) {      return false;    }    if (bits[0] === 1) {      isOneBitCharacter(bits.slice(1));    } else {      isOneBitCharacter(bits.slice(2));    }};isOneBitCharacter([1,0,1,0]);
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

我猜你错过了回报。这是调整后的代码:


var isOneBitCharacter = function(bits) {

  console.log(bits);

    var length = bits.length;


    if (length == 1) {

      return true;

    }

    if (length == 0) {return false;}


    // added return here and next statements

    if (length == 2 && bits[0] === 1) {

      return false;

    }

    if (bits[0] === 1) {

      return isOneBitCharacter(bits.slice(1));

    } else {

      return isOneBitCharacter(bits.slice(2));

    }

};

isOneBitCharacter([1,0,1,0]);


查看完整回答
反对 回复 2021-09-30
  • 1 回答
  • 0 关注
  • 296 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信