【问题标题】:Array inside function returns undefined函数内的数组返回未定义
【发布时间】:2020-09-26 13:36:26
【问题描述】:

我练习了简单的 js 课程,但下面这部分有问题 函数应该返回数组索引 0 而不是字母 A 但实际上返回 - 未定义 我不知道为什么?

function parseGuesses(guess) {
    var alphabet = ["A", "B", "C", "D", "E", "F", "G"];
    if (guess === null || guess.length !== 2) {
        alert("Ups proszę podać literę i cyfrę");
    } else { firstChar = guess.charAt(0);
        var row = alphabet.indexOf(firstChar);
    }
}
console.log(parseGuesses("A2"));

【问题讨论】:

  • 您没有使用return 关键字,因此不会返回任何内容。
  • 另外,firstChar 应该声明为 var 或者最好是 let。

标签: javascript


【解决方案1】:

正如 Ivar 所说,您编写的函数没有返回任何内容,因此默认情况下它会返回 undefine,因此要更改函数的返回值,您应该这样编写:

function parseGuesses(guess) {
  var alphabet = ["A", "B", "C", "D", "E", "F", "G"];
  if (guess === null || guess.length !== 2) {
    alert("Ups proszę podać literę i cyfrę");
  } else {
    let firstChar = guess.charAt(0); // you should also declare when you create a new variable
    return alphabet.indexOf(firstChar);
  }
}

【讨论】:

    【解决方案2】:

    它记录未定义,因为您的函数没有返回任何内容。

    你的函数应该有 return 关键字,通常在函数的最后一行使用。

    function parseGuesses(guess) {
    
      // operation of something ....
    
      return something
    }
    

    然后将其记录到控制台

    console.log(parseGuesses("A2"))
    

    从你的代码修改

     function parseGuesses(guess) {
      var alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
      let firstChar, row;
      if (!guess || guess.length > 2) {
        alert('Ups proszę podać literę i cyfrę');
      } else {
        firstChar = guess.charAt(0);
        row = alphabet.indexOf(firstChar);
      }
      return [firstChar, row]; // return an array after those operation above
    }
    console.log(parseGuesses('A2'));
    

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多