在Google Apps脚本中解构2D数组

时间:2019-01-22 22:35:43

标签: google-apps-script

我正在尝试在Google Apps脚本中解构2D数组,并且它保持不变。

我找到了一个链接,该链接解释了如何在Google Apps脚本中解构数组,类似于javascript es6的语法。

链接为https://plus.google.com/u/0/+DimuDesigns/posts/9FDJx2qe4gZ

他们给出的示例作为单独的函数对我来说很好用。

function readData() {
  var id = '1P4aVeFJMT9e0ijoFt262IuLlnjHte8hl2iUeU_kk-AQ'; //ID of the 
projects spreadsheet
  var ass = SpreadsheetApp.openById(id); //Initilize spreadsheet
  var sheet = ass.getSheetByName('Sheet1'); //Get sheet instence

  var row1data = sheet.getRange('A1:F1').getValues();

  [a1, b1, c1, d1, e1, f1] = [row1data];  

  //DEBUG
  Logger.log(a1);
}

预期输出到日志应该是数组中第一项的单元格A1中的数据。

实际输出是数组本身。

我通常是个初学者,因此请提供带有注释良好代码的清晰解释。

1 个答案:

答案 0 :(得分:3)

此修改如何?我认为您的脚本中有2个错误。

  1. 当将“ a1”,“ b1”,“ c1”,“ d1”,“ e1”和“ f1”的值放在“ A1:F1”,row1data的单元格中时由var row1data = sheet.getRange('A1:F1').getValues()检索的就像[["a1","b1","c1","d1","e1","f1"]]。这是二维数组。

  2. 需要声明a1, b1, c1, d1, e1, f1[a1, b1, c1, d1, e1, f1]的变量。

当以上几点反映到您的脚本中时,它如下所示。

修改后的脚本:

请进行如下修改。

从:
[a1, b1, c1, d1, e1, f1] = [row1data];  

//DEBUG
Logger.log(a1);
至:
var a1, b1, c1, d1, e1, f1;
[a1, b1, c1, d1, e1, f1] = row1data[0];

//DEBUG
Logger.log(a1);

注意:

  • 您也可以使用[[a1, b1, c1, d1, e1, f1]] = row1data代替[a1, b1, c1, d1, e1, f1] = row1data[0]
  • 作为示例,如果在脚本中使用了[row1data],它将变成[[[a1, b1, c1, d1, e1, f1]]] = [row1data]

参考: