编写这个简写条件三元运算符来比较两个变量的正确方法是什么?
What's the proper way to write this short hand conditional ternary operator to compare two variables?
我不知道如何编写 shorthand 条件语句。这是代码示例:
const siteIdentifier = "bar";
const refOne = "foo";
const refTwo = "bar";
(siteIdentifier == refOne || refTwo) ? "primary" : "secondary";
我也尝试过使用 .match
和其他变体,但也没有成功。
我希望将 siteIdentifier
字符串与两个可能的字符串进行比较。如果字符串匹配,我们将返回 "primary"
。如果两者之一不匹配,则 returns "secondary"
.
试试这个:
(siteIdentifier == refOne) ? "primary" : (siteIdentifier == refTwo ? "primary" : "secondary");
一种方法是
(siteIdentifier == refOne || siteIdentifier == refTwo) ? "primary" : "secondary";
...另一个可能(当你有很多字符串要匹配时更有用)
~[refOne, refTwo].indexOf(siteIdentifier) ? "primary" : "secondary";
与
相同
[refOne, refTwo].indexOf(siteIdentifier) >= 0 ? "primary" : "secondary";
为了完整起见,所有可能性都放在一起的对象。
const obj = { foo: 'primary', bar: 'primary', default: 'secondary'};
x = obj[siteIdentifier] || obj.default;
我不知道如何编写 shorthand 条件语句。这是代码示例:
const siteIdentifier = "bar";
const refOne = "foo";
const refTwo = "bar";
(siteIdentifier == refOne || refTwo) ? "primary" : "secondary";
我也尝试过使用 .match
和其他变体,但也没有成功。
我希望将 siteIdentifier
字符串与两个可能的字符串进行比较。如果字符串匹配,我们将返回 "primary"
。如果两者之一不匹配,则 returns "secondary"
.
试试这个:
(siteIdentifier == refOne) ? "primary" : (siteIdentifier == refTwo ? "primary" : "secondary");
一种方法是
(siteIdentifier == refOne || siteIdentifier == refTwo) ? "primary" : "secondary";
...另一个可能(当你有很多字符串要匹配时更有用)
~[refOne, refTwo].indexOf(siteIdentifier) ? "primary" : "secondary";
与
相同[refOne, refTwo].indexOf(siteIdentifier) >= 0 ? "primary" : "secondary";
为了完整起见,所有可能性都放在一起的对象。
const obj = { foo: 'primary', bar: 'primary', default: 'secondary'};
x = obj[siteIdentifier] || obj.default;