我从头开始编写一个简单的Rock,Paper,Scissors程序,我有一个看起来很臃肿的IF语句。我知道它可以减少,但我无法在任何地方找到答案。
我首先通过提示用户从此语句输入他们的响应来获取变量userChoice:
var userChoice = prompt("Choose either Rock, Paper, or Scissors.");
我希望程序接受大写和非大写的响应(摇滚或Rock会有效),我还想提醒用户他们的回复无效。
有没有办法接受非资本化和大写的回应(摇滚或摇滚)而不用像我这样的臃肿的IF声明?
if (userChoice !== "Rock" && userChoice !== "rock") {
alert("Invalid response.");
}
此IF声明缩短了。在我的实际代码中,IF语句也用于比较非大写和大写的纸和剪刀版本。但是为了这个例子,我把所有的废话都留下了。
由于
答案 0 :(得分:2)
将用户输入userChoice
转换为大写/小写,然后与较低的大小写字符串比较
var userChoice = prompt("Choose either Rock, Paper, or Scissors.").toLowerCase();
if (userChoice !== "rock") {
alert("Invalid response.");
}
答案 1 :(得分:2)
与Arun的回答相同,但更短,您可以使用带有i
标记的RegExp
来忽略大小写:
if (/rock/i.test(userChoice)) {
...
}