您能否解释一下并显示正确答案:
<p id="show"></p>
<script>
var a = "word1";
var b = "word2";
do {
color = prompt("Write a word1 or word2 to get out of loop", "");
} while (color != a || color != b);
document.getElementById("show").innerHTML=color;
</script>
当我删除“b”选项并仅使用“a”选项时,它会起作用。那么如何将它用于多个选项呢?另外,如果您有一个保持简单的解决方案,例如我有 15 个选项,那就太好了!
谢谢
最佳答案
检查某事物是否不是一件事,或不是另一件事,总是正确的。我认为您想要 &&
而不是 ||
。
更一般地说,如果您有很多选项,那么如果值是字符串(或容易字符串化的东西),那么一个好的模式是:
var badValues = {
"a": 1, "b": 1, "c": 1, ...
};
do {
color = prompt("Write a word1 or word2 to get out of loop", "");
} while (!badValues[color]);
您可以翻转逻辑来处理“白名单”而不是“黑名单”。
编辑 - 一条富有洞察力的评论(现已删除)指出,我的声明 ||
比较将始终为 true
仅在以下情况下有效“a”与“b”确实不同。
关于Javascript、Do While 循环多个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101553/