我正在使用Google电子表格添加脚本(非公式),而且我遇到了问题。
我需要找到一种方法来使用这样的东西:
If (Product == "Shampoo" && (Box == "15" OR Box == "17"))
{
//Do Something...
}
基本上如果产品是洗发水,它所属的盒子是15或17,那么就做点什么。我知道做If (Product == "Shampoo" && Box == "15" OR Box == "17")
会产生意外或不良结果。我们如何在谷歌脚本中使用OR和?
根据我的理解Google脚本基于Javascript,但我似乎无法在线或在SO中找到帮助帖,我得到的只是公式中的解决方案而不是脚本。
答案 0 :(得分:2)
首先关于OP代码的说明
JavaScript方法区分大小写。
而不是IF
正确的语法是if
。另一方面,Logical OR运算符是||
。
考虑到上述情况,OP代码可以替换为
if(Product == "Shampoo" && (Box == "15" || Box == "17"))
{
//Do Something...
}
和
if(Product == "Shampoo" && Box == "15" || Box == "17")
关于这个问题,如果(Product == "Shampoo" && Box == "15" || Box == "17")
返回意外或不良结果,这可能很难阅读并导致人类混淆但JavaScript有关于如何由引擎进行操作的非常具体的规则,在这种情况下Google Apps脚本使用的Rhino。
正如a previous answer中提到的那样,在这种情况下,规则称为operator precedence,但为了使代码更容易阅读并防止混淆,一个好的做法是将每个比较括在括号中。
考虑到Logical AND的优先级高于Logical OR
(Product == "Shampoo" && Box == "15" || Box == "17")
与
相同((Product == "Shampoo" && Box == "15") || Box == "17")
参考
答案 1 :(得分:1)
您在寻找两个运营商operator precedence和logical AND &&
中的logical OR ||
。
表格的一部分:
Precedence Operator type Associativity Individual operators
---------- ------------- --------------- --------------------
6 Logical AND left-to-right … && …
5 Logical OR left-to-right … || …
您会看到逻辑AND优先于逻辑OR的运算符优先级。这意味着您需要OR语句的一些括号。