javascript - 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之间的区别有关。
解决方案
这是因为您的 console.loging 错误消息而不是返回它
当它要求您“请输入石头、纸或剪刀”时,您没有返回任何东西,因此返回是不确定的。
所以切换
console.log('Please enter rock, paper, or scissors')
至
return 'Please enter rock, paper, or scissors';
推荐阅读
- javascript - 生成图像时谷歌图表注释移到后面
- c# - 从 C# 中,如何设置默认 Crystal Report 参数但仍然在参数对话框中看到此参数
- mysql - MySQL服务器版本10.3.9-MariaDB不能查询文本有单引号
- reactjs - 如何使用 react-select 在每个下拉项下方自定义呈现子文本?
- python - 如何将假人添加到 Pandas DataFrame?
- python - 绘制一条线或一系列线并获得组合线的总长度?
- verilog - 阻塞和非阻塞语句的verilog内部延迟
- javascript - 一种在 React 中使用 localstorage 显示组件一次的方法
- c# - 如何使用 Entity Framework 6 从 10 多个表中获取记录并从中显示报告?
- if-statement - Python 3.7.2 Elif 仅在 if 语句中不起作用