簡體   English   中英

為什么在明確告訴函數返回true時函數返回undefined?

[英]Why does function return undefined when it explicitly is told to return true?

我正在嘗試解決以下編碼練習。

我們有兩個特殊字符。 第一個字符可由一位0表示。第二個字符可由兩位(10或11)表示。

現在給出一個由幾個位表示的字符串。 返回最后一個字符是否必須為一位字符。 給定的字符串將始終以零結尾。

例:

輸入:位= [1、0、0]輸出:真

以下是我針對上述挑戰的解決方案。 為什么返回undefined 如果我使用[1,0,1,0]作為輸入,它應該返回true但是我得到undefined 我在return語句中顯式地寫true ,而不是變量的結果。

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]);

我想你錯過了回報。 這是調整后的代碼:

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]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM