javascript - JS 函数没有返回预期的结果
问题描述
此函数提示用户选择rock、paper或scissors并将输入更改为小写。如果用户没有选择上述任何一项,则返回 If 语句。但如果选择了正确的选择,则返回 else 语句。
但是,如果用户输入适当的响应,则 else 语句不会运行。
function player() {
let pick = prompt("Rock, paper, or scissors?");
pick = pick.toLowerCase();
if ((pick !== 'rock') || (pick !== 'paper') || (pick !== 'scissors')) {
return `Please pick a valid choice ${pick}`;
} else {
return pick;
}
}
如果我输入石头/纸/剪刀以外的东西,我希望 if 语句能够运行。但是如果我输入石头/纸/剪刀,我希望 else 语句能够运行。
但是,无论如何,else 语句永远不会运行。
解决方案
使用&&
代替||
,否则条件将始终为真。但更好的是,您可以通过将有效选择放入数组并使用includes
:
const validPicks = ['rock', 'paper', 'scissors'];
function player() {
const pick = prompt("Rock, paper, or scissors?").toLowerCase();
if (!validPicks.includes(pick)) {
return `Please pick a valid choice ${pick}`;
} else {
return pick;
}
}
console.log(player());
推荐阅读
- python - Pandas 按数值条件分组
- javascript - 如何构建动画正弦波
- c - 如何在 FUNC 中更改 struct 的值?
- ios - 标记移动根据路线图框
- javascript - 在 for 循环中动画后删除多个元素
- c++ - 创建 C++ DLL 以从 C# DLL 调用方法
- angular - 有没有办法检测用户使用 Angular 在浏览器中使用后退按钮导航到应用程序?
- c# - [DebuggerStepThrough] 可以用来不中断我的部分代码吗?
- tensorflow - Nvidia Jetson TX1 上的最新 TensorFlow
- django - D3从django序列化模型json中获取返回空白数组