функция: если с прерыванием, вернуть - PullRequest
1 голос
/ 15 апреля 2020

Я не могу получить значения из моей prompt функции

Мне нужно, чтобы функция работала правильно, если пользовательский ввод равен одной из 6 переменных, и в состоянии "если", чтобы остановить, если ввод не соответствует ни одному Я много манипулировал с &&, || !, ==, ===, ничего не работает, console.log дает мне тот же результат, что я печатаю (но с заглавными буквами, lol)

//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
 }
}

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Ваш код может быть упрощен:

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 голосов
/ 15 апреля 2020

Если я понял ваш вопрос, вы хотите, чтобы функция проверила, если опция действительна. Если это так, вы можете сделать это несколькими способами. Вот еще два простых способа сделать это:

1-й: (Вызовите эту функцию и посмотрите, верна ли опция. Функция вернет 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;
}

2nd: (тот же метод, но, на мой взгляд, лучший способ его кодирования)

function verifyOptionSelected(option){
    var validOptions = ["rock", "paper", "scissor"];
    return option != null && validOptions.indexOf(option.toLowerCase()) >= 0;    
}
...