繁体   English   中英

函数内部的数组返回未定义

[英]Array inside function returns undefined

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

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

正如 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);
  }
}

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

你的函数应该有 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'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM