首页 > 解决方案 > Codecademy 中的石头剪刀布游戏中的函数“未定义”消息

问题描述

这个函数应该精确地产生“rock”、“paper”或“scissors”(输入不区分大小写)。但是当我输入错误的值(即带有额外的's'的'papers')时,我的函数会打印错误消息(预期)和一条消息说“未定义”(不是预期的)。

const getUserChoice = (userInput) => {
  userInput = userInput.toLowerCase();
  if (userInput === 'rock' ||
      userInput === 'paper' ||
      userInput === 'scissors') {
        return userInput;
      } else {
        console.log('Please enter rock, paper, or scissors.')
      }
}
console.log(getUserChoice('papers')); #prints 'paper' correctly if paper is the input

编辑:我将问题更新为更清晰,我已经找到了答案。它与console.log和return之间的区别有关。

标签: javascriptproject

解决方案


这是因为您的 console.loging 错误消息而不是返回它

当它要求您“请输入石头、纸或剪刀”时,您没有返回任何东西,因此返回是不确定的。

所以切换

console.log('Please enter rock, paper, or scissors')

return 'Please enter rock, paper, or scissors';



推荐阅读