javascript - 未正确评估将字符串值与用户输入进行比较
问题描述
// Computer randomly selects Rock, Paper / Scissors
computerChoice = function computerPlay() {
let r = Math.random() * 3;
let choice;
if(r > 2) {
console.log('Rock');
return 'rock';
} else if (r > 1) {
console.log('Scissors');
return 'scissors';
} else {
console.log('Paper');
return 'paper';
}
}
//compare results
function compareChoice(userChoice, computerChoice) {
if (userChoice === computerChoice) {
console.log('Draw')
} else if(userChoice === 'paper') {
if(computerChoice == 'scissors') {
console.log ('You lose, try again!')
} else {
console.log('You win!')
}
} else if(userChoice === 'rock') {
if(computerChoice === 'paper') {
console.log('You lose! Try again!')
} else {
console.log('You win!')
}
} else if(userChoice === 'scissors') {
if (computerChoice === 'rock') {
console.log('You Lose! Try again!')
} else {
console.log('You win!')
}
}
}
function game() {
let userChoice = prompt('Choose rock, paper, or scissors!');
console.log('Your choice was ' + userChoice);
computerChoice();
compareChoice();
}
game();
你好!我正在尝试用Javascript为Odin项目完成一个简单的Rock,paper scissors项目,但是每当我尝试将字符串值与用户的输入进行比较时,它都会记录draw,这意味着它被评估为true第一个 if 语句,无论用户输入什么。我已经搜索过了,我不确定我做错了什么。任何帮助将不胜感激谢谢!
解决方案
您需要将用户选择和计算机选择传递给 compareChoice。
function game() {
let userChoice = prompt('Choose rock, paper, or scissors!');
console.log('Your choice was ' + userChoice);
compareChoice(userChoice, computerChoice());
}
推荐阅读
- python - 过滤 1000 个大文件 pyspark 中的 Header 2 行和 Trailer 1 行
- python - 我正在观看 Reducible 关于递归的视频并看到了这段代码,但我无法理解它是如何工作的,有人可以解释一下吗?
- java - 使用 JNI 创建 JFrame
- prometheus - Prometheus 指标不会显示 Java 类
- java - 如何为此使用包装器的日志过滤器编写单元测试
- typescript - 使用导入/导出时出现 webpack 错误
- testing - 如何使用 Jest 在 Next 中测试 _document
- gradle - 如何覆盖 maven-publish publishing/publications 闭包中的变量?
- eclipse - 二郎。有人可以帮我弄清楚为什么在我尝试运行程序时会抛出这个错误吗?
- email - 当电子邮件被标记为垃圾邮件时如何通过触发器/webhook 进行检测