【问题标题】:Three Way Compare Variables and Strings三路比较变量和字符串
【发布时间】:2018-08-31 22:57:08
【问题描述】:

所以我想比较两个 JavaScript 变量,看看它们是否匹配并等于指定的字符串。一个变量基于用户输入,另一个来自数据库。这是我希望可以工作的一个例子......

var userInput = "Simple";
var databaseData = "Simple";
if (userInput == databaseData == "Simple") {...}

我所知道的有效。

if (userInput == "Simple" && databaseData == "Simple") {...}

所以第一个示例似乎不起作用,即使使用 3 个等号而不是 2。是我希望以其他方式工作的可能(目的是简单和紧凑)还是我知道的工作最好的方法?

【问题讨论】:

  • 看,userInput == databaseData 本身就是一个有效的表达式,其结果是true(布尔值)。很难理解您实际上想忽略这一点 - 并使用 a == b == c 作为完全不同类型的表达式,如果它的所有部分都相等,则为 true。
  • ((userInput == databaseData ? "Simple" : null) == "Simple")
  • userInput == databaseData == "Simple" 等于 => userInput == true => false

标签: javascript variables string-comparison


【解决方案1】:

如果所有参数严格相等,则此函数返回 true:

function allEqual(...args) {
  return args.every((el, i, arr) => i === 0 || el === arr[i-1]);
}

在三个值上使用它是否有意义,像这样......

if (allEqual(userInput, databaseData, 'Simple')) { ... }

...由你决定。

【讨论】:

    猜你喜欢
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2021-08-16
    相关资源
    最近更新 更多