编写这个短手条件三元运算符来比较两个变量的正确方法是什么?

时间:2016-02-09 08:27:48

标签: javascript operators conditional ternary-operator

我无法弄清楚如何编写速记条件语句。以下是代码示例:

const siteIdentifier = "bar";
const refOne = "foo";
const refTwo = "bar";

(siteIdentifier == refOne || refTwo) ? "primary" : "secondary";

我也尝试过使用.match和其他版本,但也没有成功。

我希望将siteIdentifier字符串与两个可能的字符串进行比较。如果字符串匹配,我们将返回"primary"。如果它与两者中的一个不匹配,则返回"secondary"

3 个答案:

答案 0 :(得分:4)

一种方式是

(siteIdentifier == refOne || siteIdentifier == refTwo) ? "primary" : "secondary";

...另一个可能是(当你有许多字符串要匹配时更有用)

~[refOne, refTwo].indexOf(siteIdentifier) ? "primary" : "secondary";

相同
[refOne, refTwo].indexOf(siteIdentifier) >= 0 ? "primary" : "secondary";

答案 1 :(得分:0)

试试这个:

(siteIdentifier == refOne) ? "primary" : (siteIdentifier == refTwo ? "primary" : "secondary");

答案 2 :(得分:0)

仅仅为了完整性,一个具有所有可能性的对象。

const obj = { foo: 'primary', bar: 'primary', default: 'secondary'};
x = obj[siteIdentifier] || obj.default;