JavaScript猜拳游戏playRound函数返回结果异常求助
问题分析与解决
你的代码存在两个关键问题,导致playRound()始终返回平局结果:
函数参数传递错误
你定义的playRound()函数声明了playerSelection和computerSelection两个参数,但调用时未传入任何值(console.log(playRound());)。此时函数内部的这两个参数会被视为undefined,全局声明的同名变量并不会自动传入函数。由于undefined === undefined始终为真,所以永远触发平局的返回值。正确的调用方式需把全局变量传入函数:
console.log(playRound(playerSelection, computerSelection));拼写错误导致的逻辑隐患
在getComputerChoice()函数的数组里,你把"scissors"拼写成了"sissors"。虽然这不会直接导致当前的平局问题,但后续扩展胜负判断逻辑时,会因字符串不匹配出现错误,建议修正为正确拼写:const choice = ["paper", "rock", "scissors"];
修正后的完整代码示例:
const playerSelection = "rock" const computerSelection = getComputerChoice(); // 传入参数调用函数 console.log(playRound(playerSelection, computerSelection)); function getComputerChoice() { // 修正拼写错误 const choice = ["paper", "rock", "scissors"]; return choice[Math.floor(Math.random() * 3)]; } function playRound(playerSelection, computerSelection) { if (playerSelection === computerSelection) { return "It is a tie!"; } else { return "Please try again!"; } }
内容的提问来源于stack exchange,提问作者Mulcahy
相关产品推荐
相关产品推荐

