【问题标题】:Length of an array in Google Sheets App ScriptGoogle Sheets App Script中数组的长度
【发布时间】:2021-12-15 12:05:38
【问题描述】:

我正在尝试确定数组的长度,以便我可以使用该长度来确定 for 循环需要迭代多少次。

我正在尝试从多列的 1 行中读取,以确定需要写入哪些单元格。代码会将数据写入行,但需要确定标头是否已写入,或者标头是否还需要写入。在这个函数中,我专注于检查标题以查看值是否已经写入。

我知道范围值 D2:Z2 效率低下,我愿意接受另一种解决方法。 我很想知道是否有人能够确定为什么长度是 1.0 而不是 4,如果其他人能想出一种比较值的方法,然后确定写入新标题集的列。

代码

 function getCurrentHeader() {

  //gets active spreadsheet, saves to array
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Records");
  var rangeValues = Array;
  //D2:Z2 is the current largest range available 15/12/21 
  rangeValues = sheet.getRange("D2:Z2").getValues(); 
  return rangeValues;
}


function checkCurrentHeaders(){
  //gets the array of headers
  var current = getCurrentHeader();
  //Logger.log(current);
  var leng = current.length;

  Logger.log(leng);

}

以上是我到目前为止所写的内容,但即使记录了数组以查看值,.length 返回值 1,数组中有 4 个值,所以我期待 4 作为返回。我还注意到输出在两组方括号中。请参阅下面的日志信息。

记录器

11:52:32 AM Notice  Execution started
11:52:32 AM Info    [[B, A, C, DF, , , , , , , , , , , , , , , , , , , ]]
11:52:32 AM Info    1.0
11:52:32 AM Notice  Execution completed

【问题讨论】:

    标签: javascript arrays google-sheets


    【解决方案1】:

    getValues() 返回二维数组。在您的脚本中,rangeValues = sheet.getRange("D2:Z2").getValues() 是二维数组,如[[D2, E2, F2,,,]]。这样,当您检查var current = getCurrentHeader()current.length 时,将返回1。在这种情况下,1 是行数。我认为这是您的问题的原因。

    当你想检索列数时,请修改如下。

    发件人:

    var leng = current.length;
    

    收件人:

    var leng = current[0].length;
    

    发件人:

    rangeValues = sheet.getRange("D2:Z2").getValues(); 
    

    收件人:

    rangeValues = sheet.getRange("D2:Z2").getValues()[0];
    

    发件人:

    rangeValues = sheet.getRange("D2:Z2").getValues(); 
    

    收件人:

    rangeValues = sheet.getRange("D2:Z2").getValues()[0].filter(String); // In this case, the empty cells are ignored.
    

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      相关资源
      最近更新 更多