数组结束功能在Google Apps脚本中无法正常工作

时间:2017-09-22 18:21:33

标签: arrays google-apps-script while-loop

我在谷歌应用程序脚本中编写了一个自定义函数,它以2D数组的形式从电子表格中获取值,并循环检查这些值是否未定义或是否为空字符串。但是,我得到的第一个值等于空字符串,当然它不是。我也得到了值不等于空字符串,这根本没有任何意义。第一个

的值

这是我的代码:

function lastColumnWithValue(row, cells) {

  var i = 0;
//cells[row][i] = 0 to start with
//not getting into while loop
  Logger.log(cells[row][i]);
  Logger.log(cells[row][i] === "");
  Logger.log(cells[row][i] != undefined && cells[row][i] != "")
  Logger.log(cells[row][i] != undefined);
  Logger.log(cells[row][i] != "")//returns false
  Logger.log(cells[row][i] === "")//returns false

  while (cells[row][i] != undefined && cells[row][i] != "") {

   i++; 



  }
    Logger.log("i - 1: " + (i - 1))
  return i - 1;




}

2 个答案:

答案 0 :(得分:0)

我做了类似的事情,它运作得很好。我认为问题的一部分是这样的:while (cells[row][i] != undefined && cells[row][i] != "")应该是这样的:while (cells[row][i] != 'undefined' && cells[row][i] != "")我的最后一部分!row[j] in my code

守则:

function testingMyData() 
{
    var ss=SpreadsheetApp.getActive();
    var sh=ss.getActiveSheet();
    var rg=sh.getDataRange();
    var vA=rg.getValues();
    if(!containsNulls(vA))
    {
      SpreadsheetApp.getUi().alert('No nulls');
    }
    else
    {
      SpreadsheetApp.getUi().alert('Nulls');
    }

}

function containsNulls(A)
{
  for(var i=0;i<A.length;i++)
  {
      var row=A[i];
      for(var j=0;j<row.length;j++)
      {
        if(!row[j] && typeof(row[j])!='undefined')
        {
          return true;
        }
      }
  }
  return false;
}

我的电子表格:

enter image description here

答案 1 :(得分:0)

您的函数名称是

  

lastColumnWithValue

为什么不使用内置的最后一列功能?

  

getLastColumn


示例

SpreadsheetApp.getActiveSheet()。getLastColumn()