Google Script - 在IF语句中无法使用的合并运算符语法

时间:2015-12-20 13:56:08

标签: javascript google-apps-script google-sheets operators

Conext

我希望下面的onEdit(e)函数能够根据单元格的新旧值在电子表格中添加或删除行。这需要我的IF语句中的OR(||)运算符来检查值。下面是我的第一次尝试,但是导致了一些奇怪的行为,例如在一次编辑后出现然后消失的行(第二个IF语句),每当我点击"删除"钥匙等:

command failed (exitstatus=0): /Users/Emma/.rvm/gems/ruby-2.2.1/bin/wkhtmltopdf --page-size Letter --margin-top 0.75in --margin-right 0.75in --margin-bottom 0.75in --margin-left 0.75in --encoding UTF-8 toc - -

目前使用的应用程序

  1. Google表格
  2. Google Apps脚本
  3. 我迄今为止所做的事

    当我更改我的IF语句以在每个OR运算符之后重新生成变量时,干净地生成了所需的结果:

    function onEdit(e) {
      var range = e.range;
      var newValue = e.value;
      var oldValue = e.oldValue;
      var targetRow = range.getRow();
    
    //insert 2 rows if edited cell value = "a" or "b"
      if (newValue === "a" || "b") {
        sheet.insertRowsAfter(targetRow, 2);
      } 
    
    //delete 2 rows if former cell value was "a" or "b"
      if (oldValue === "a" || "b") {
        sheet.deleteRows(targetRow + 1, 2);
      }
    }
    

    问题

    是否有一种合并形式的这些陈述可以继续产生预期的结果?当我继续编写此函数时,这些IF语句可能会变得更复杂,并且需要使用OR和AND运算符检查相同的变量。只为每个运算符声明一次变量名称要容易得多。

    回顾一下:

    我希望能够编写代码的整合格式,如第一个代码段所示:

    if (newValue === "a" || newValue === "b") {
        sheet.insertRowsAfter(targetRow, 2);
      } 
      if (oldValue === "a" || oldValue === "b") {
        sheet.deleteRows(targetRow + 1, 2);
      }
    

    但是,只有在较长版本中编写时才能正常工作:

    if (newValue === "a" || "b") { //etc...
    

    谢谢!

0 个答案:

没有答案