【问题标题】:js prompt validation to one of three wordsjs 提示验证三个单词之一
【发布时间】:2015-10-19 11:01:23
【问题描述】:

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

干杯 塞巴斯蒂安

【问题讨论】:

    标签: javascript validation command-prompt


    【解决方案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 以退出 while 循环)。

    【讨论】:

    • 是的,它有效!非常感谢您的帮助和解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2021-07-10
    • 2021-05-08
    • 1970-01-01
    • 2015-01-16
    相关资源
    最近更新 更多