我正在尝试在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中的数据。
实际输出是数组本身。
我通常是个初学者,因此请提供带有注释良好代码的清晰解释。
答案 0 :(得分:3)
此修改如何?我认为您的脚本中有2个错误。
当将“ a1”,“ b1”,“ c1”,“ d1”,“ e1”和“ f1”的值放在“ A1:F1”,row1data
的单元格中时由var row1data = sheet.getRange('A1:F1').getValues()
检索的就像[["a1","b1","c1","d1","e1","f1"]]
。这是二维数组。
需要声明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]
。