JavaScript/Node.JS - 使用OR运算符的紧凑方式?

APi*_*als 0 javascript variables var operators node.js

假设我有检查字符串的情况.我需要检查它是匹配a还是匹配b.现在,当然,我可以做到

var firstVar = "a"
var secondVar = "b"
var message = "atest" // note that I might not know what message is. it could be anything. it could be just "test" or just "a"
if ((message === firstVar + "test") || (message === secondVar + "test")) {
   console.log("success!")
}
Run Code Online (Sandbox Code Playgroud)

但有没有办法压缩这个?与具有一些myVar与值是数组ab,然后,如果检查message 开始于任何值myVar?如果有人有小费,那将非常感激.谢谢!

Ber*_*rgi 5

使用数组some将是最简单的方法:

var tests = ["a", "b"];
var message = "atest";
if (tests.some(function(t) { return message === t + "test"; })) {
    console.log("success!")
}
Run Code Online (Sandbox Code Playgroud)

如果您可以使用ES6并且需要经常运行此检查,那么使用它可能是有意义的

const choices = new Set(["a", "b"].map(t => t + "test"));
…
var message = "atest";
if (choices.has(message)) {
    console.log("success!")
}
Run Code Online (Sandbox Code Playgroud)