Js提示验证为三个单词之一

js prompt validation to one of three words

本文关键字:三个 单词之 提示 验证 Js      更新时间:2023-09-26

我正在努力学习js。所以,为了学习,我想写一个小游戏,石头,剪刀,布。现在我想做一个提示符(),用户必须输入他想要选择的东西。但如果他没有写出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循环的条件是错误的,但是我必须在里面写什么?

干杯塞巴斯蒂安。

这行得通:

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以退出while循环)。