js提示验证三个单词之一

时间:2015-10-19 11:01:23

标签: javascript validation command-prompt

我正在努力学习js。所以,对于学习我想写一个名为rock,papper,scissors的小游戏。 现在我想做一个提示符(),用户必须输入他想要选择的内容。但如果他没有写出3个可能的答案(摇滚,纸张,剪刀),他就必须再做一次。

到目前为止我的代码:

function validateUserChoice() {
var localUserChoi = prompt("Please choose rock, paper or scissors");

while (localUserChoi != "rock" || localUserChoi != "paper" || localUserChoi != "stone") {
    alert("You have to type one of the words: rock, paper, scissors");
    localUserChoi = prompt("Bitte geben Sie rock, paper oder scissors ein");
}

userChoice = localUserChoice;
}

我知道while循环的条件是错误的,但是我需要写什么呢?

欢呼声 塞巴斯蒂安

1 个答案:

答案 0 :(得分:1)

这有效:

var answer = '';
var options = ['rock', 'paper', 'scissors'];
while (!~options.indexOf(answer)) {
  answer = prompt('Please choose: "'+ options.join(', ') +'"');
};

<强>说明: 默认情况下,answer与任何数组值都不匹配,因此prompt在while循环中完成。在与数组索引(0,1或2)匹配后,索引将转换为:

  • 〜=导致在索引中加1,然后否定[这使得0为-1,其评估为true

  • ! =将其转换为相反的布尔值(其中true变为false以在循环时退出)。