【问题标题】:Comparing string from user比较来自用户的字符串
【发布时间】:2019-10-08 01:49:18
【问题描述】:

如果用户输入了特定的符号或字符串,我想启动一个代码。 在此任务中,我需要检查用户是否输入了以下任何内容:“a”、“b”、“c”、“d”。然而,它似乎只是忽略了 if 语句。

这是整个问题: 编写一个程序,根据其标签和等级确定棋盘方块的颜色。 输入:在第一行,您将收到 L - 标签 在第二行,您将收到 R - 排名

let L = prompt();
let R = Number(prompt());
if (L == ("a", "c", "e", "g")) {
  if (R % 2 == 0) {
    /*if we are on a/c/e/g lines and the number is even the 
                         square is white*/
    console.log("light");
  } else {
    console.log("dark");
  } //else it is going to be odd therefore dark
} else if (L == ("b", "d", "f", "h")) { //opposite logic:
  if (R % 2 == 0) {
    console.log("dark");
  } else {
    console.log("light");
  }
}

问题是我不知道如何比较这两个字符串。我尝试了一些字符串方法,但我想我只是犯了一个 sintax 错误

【问题讨论】:

标签: javascript


【解决方案1】:

("a","c","e","g") 是一个使用逗号运算符的表达式,它将计算到最后一个操作数(在上述情况下为"g")。所以

if(L==("a","c","e","g")){..}

相同
if(L == "g"){...}

你可以创建数组然后使用includes()

let L = prompt();
let R = Number(prompt());
if (["a", "c", "e", "g"].includes(L)) {
    if (R % 2 == 0) {
        console.log("light");
    } else {
        console.log("dark");
    } 
} else
if (["b", "d", "f", "h"].includes(L)) { 
    if (R % 2 == 0) {
        console.log("dark");
    } else {
        console.log("light");
    }
}

您可以使您的代码更短。创建一个包含两个字母数组的数组,并将其中存在LindexOf 数组添加到R

let L = prompt();
let R = Number(prompt());

const arr = [['a','c','e','g'],['b','d','f','h']];


if((R + (arr.findIndex(a => a.includes(L)))) % 2 === 0) console.log('white');
else console.log('black');

【讨论】:

  • 是的,谢谢,这将是一个有用的方法。该任务的想法是仅使用 if 语句进行锻炼,因此我们应该只使用条件语句。无论如何,对其他任务也很有用,谢谢!
  • @danaililiev 总是乐于提供帮助。确保看到第二种方法更干净。
【解决方案2】:

== 的比较不是这样。将您的代码拆分为多个 or (||) statements 或使用数组:

或者:

var L = "e";
if (L == "a" || L == "c" || L == "e" || L == "g"){
    console.log("Or method");
}

数组 - 包括:

var L = "c";
if (["a", "c", "e", "g"].includes(L)){
    console.log("includes method")
}

数组 - indexOf:

var L = "g";
if (["a", "c", "e", "g"].indexOf(L) !== -1){
    console.log("indexOf method");
} 

更多关于 JavaScript 中的逻辑运算符:

https://javascript.info/logical-operators

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2015-03-03
    • 1970-01-01
    相关资源
    最近更新 更多