Google Apps Script中IF语句如何同时使用AND与OR逻辑?
在Google Apps Script中正确组合AND与OR逻辑判断
嘿,这个问题其实是JavaScript运算符优先级的典型坑,而Google Apps Script完全遵循JS的逻辑规则,咱们直接按JS的正确写法来就行~
你之前的写法之所以不符合预期,是因为逻辑与(&&)的优先级比逻辑或(||)高,JS会先计算Product == "Shampoo" && Box == "15",再把结果和Box == "17"做或判断——这就导致只要Box是17,不管Product是不是洗发水都会触发操作,完全偏离了你原本的需求。
正确的写法:给OR判断加括号
解决方法很简单,把需要先判断的OR条件用括号括起来,强制JS先计算这部分的逻辑,再和前面的AND结合:
// 注意Google Apps Script里用双竖线||表示OR,不是OR关键字哦 if (Product === "Shampoo" && (Box === "15" || Box === "17")) { // 在这里写你要执行的操作,比如: // SpreadsheetApp.getActiveSheet().getRange("A1").setValue("符合条件"); console.log("执行目标操作"); }
更简洁的扩展写法(适合多Box值的情况)
如果之后需要判断的Box编号变多,比如还要加18、19,一个个写||会很繁琐,这时候可以用数组的includes()方法来简化:
const validBoxNumbers = ["15", "17"]; // 把所有符合条件的Box编号放进数组 if (Product === "Shampoo" && validBoxNumbers.includes(Box)) { // 执行操作 }
这样代码更易读,后续维护也方便,直接在数组里加新值就行。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

