功能:如果有中断,返回

问题描述 投票:1回答:2

我无法从prompt函数中获取值

如果用户输入等于6个变量之一,则该功能必须正常工作;如果输入不匹配,则在“如果”条件下停止该功能。我用&&, || !, ==, ===进行了很多操作,没有任何效果,console.log给我的结果与我键入的结果相同(但大写的首字母大声笑)

//variables
let r = "Rock";
let p = "Paper";
let s = "Scissor";
let rl = "rock";
let pl = "paper";
let sl = "scissor";
const weapon = [r, p, s];
let playerChoiceUnchecked = prompt("Rock, Paper, or Scissor?");
//functions
function playerChoice(checkPlayer) {
 if (playerChoiceUnchecked == ((!r && !rl) && (!p && !pl) && (!s && !sl))) {
    alert("There's no such weapon");
    return false;
 } else {
    let checkPlayer = playerChoiceUnchecked.charAt(0).toUpperCase() + playerChoiceUnchecked.slice(1);
    //return checkPlayer;
    console.log(checkPlayer); //debug for playerChoice, second part DONE
 }
}
javascript if-statement return prompt
2个回答
1
投票

您的代码可以简化:

const weapons = ["rock", "paper", "scissor"]

function playerChoice() {
  let playerChoiceUnchecked = prompt("Rock, Paper, or Scissor?");
  if ( !weapons.includes( playerChoiceUnchecked.toLowerCase() ) ) {
    alert("There's no such weapon");
  } else {
    let checkPlayer = playerChoiceUnchecked.charAt(0).toUpperCase() + playerChoiceUnchecked.slice(1);
    console.log(checkPlayer);
  }
}

playerChoice()

0
投票

如果我理解您的问题,则您需要一个函数来验证该选项是否有效。如果是这种情况,您可以采用多种方式进行操作。这是两种更简单的方法:

第一个:(调用此函数,看看该选项是否有效。该函数将返回true = valid / false = invalid)

function verifyOptionSelected(option){
    var isValid = false;
    if (option != null){
        switch(option.toLowerCase()){
            case "rock":
            case "paper":
            case "scissor":
                isValid = true;
                break;
            default:
                isValid = false;
        }
    }

    return isValid;
}

第二:(我认为方法相同,但是更好的编码方法)

function verifyOptionSelected(option){
    var validOptions = ["rock", "paper", "scissor"];
    return option != null && validOptions.indexOf(option.toLowerCase()) >= 0;    
}
© www.soinside.com 2019 - 2024. All rights reserved.