我只是想知道是否有办法做某事:
if(myVar === 1|2|5) {do something}
或
if(myVar === (1 || 2 || 5)) { do something }
将作为
if(myVar === 1 || myVar === 2 || myVar === 5) {do something}
使用开关盒也不是可选的解决方案。它也应该适用于任何数据类型,不仅仅是数字,还有字符串,数组。基本上是比较。我已经尝试了前两个例子但它没有用,可能它并不意味着那样工作。
我对JS和PHP特别感兴趣,欢迎其他语言的其他语言。
更新
“in_array”或“indexOf”或编写内联语句不是我要找的答案。因为我了解这些我开发了8年以上的功能。
让我解释一下: 因为我正在使用react我正在学习JS,我在javascript语法中发现了许多新技巧,如:
myArray.find(item => (item.id===something)) vs .find(function(item) {....})
const printHello = () => { return "hello" } vs const printHello = function() { .... }
[1,2,3,4,...varWithOtherNumbers] vs concat
还有很多其他技巧。
所以我只是想知道是否有一个不为人知的javascript语法技巧。
答案 0 :(得分:2)
你可以这样做吗?
var a = 4;
if([1, 2, 3, 4, 5, 6, "something else"].indexOf(a) !== -1){
console.log("It is a match!");
}

在PHP中,您可以使用in_array
我知道这不是简写和完全不同的方法,但是这就是诀窍!
答案 1 :(得分:2)
PHP
$a = 5;
if(in_array($a, [1,2,3,4,5,6,7]))
{
echo "Gotcha!";
}
更短
echo in_array($a, [1,2,3,4,5,6,7]) ? "Found you" : "Not found";
<强>的Python 强>
这家伙有更短的版本
>>> 4 in [1, 2, 3, 4, 5] // Outputs True
<强>红宝石强>
[1, 2, 3].include ? 5