【问题标题】:Deconstructing 2D array in Google Apps Script在 Google Apps 脚本中解构二维数组
【发布时间】:2019-01-22 22:35:42
【问题描述】:

我正在尝试在 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 中的数据,这是数组中的第一项。

实际输出是数组本身。

我一般是初学者,因此我将不胜感激。

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    这个修改怎么样?我认为您的脚本中有 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]

    参考:

    【讨论】:

    • 几乎正确。我最终想要的是将数组解压缩为单个变量。
    • @Yoel Vinitsky 感谢您的回复。我带来的不便表示歉意。如果我误解了您的问题并且我的回答不完整,请告诉我。我想修改它。
    • OK 您的修改似乎有效,但解压缩为一个简单的数组。我按照你的建议做了,然后初始化了第二组变量并重复了它,它起作用了!谢谢。
    • 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多