google-apps-script - 创建二维数组

标签 google-apps-script

我是 JS 新手,需要一些基本帮助:

我有一个包含方阵数据的电子表格。

我可以按如下方式读取这些数据:

  var freqArr     = new Array(new Array());
  var freqSheet   = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("freq");
  var freqRows    = freqSheet.getDataRange();
  var freqNumRows = freqRows.getNumRows();
  freqArr = freqSheet.getRange(2, 2, freqNumRows, freqNumRows).getValues();

我现在想在内存中创建一个数组,类似于我从工作表中读取的数组

 var tempArr = new Array(new Array());
  for (var i = 0; i <= 3; i++) {
    for (var j = 0; j <= 3; j++) {        
      tempArr [i][j] = freqArr[i][j] ;
    }
  }

只要 j incs 从 0 到 1 并且我尝试在 tempArr [i][j] 中存储任何内容,我就会收到错误“TypeError:无法将未定义的属性“0.0”设置为“xxx”

我已经尝试了所有我能想到的创建 tempArr 的组合以及更多其他组合。

最佳答案

比我聪明得多的人可能会帮助你写得更好,但在我看来,你想创建 tempArr 作为主数组,其中包含 2 个数组.

每个数组的内部都是值,所以:

// result: tempArr = [[1,2],[4,5]]
tempArr = [] // or new Array
for (var i = 0; i <= 3; i++) {
  tempArr[i] = [];
  for (var j = 0; j <= 3; j++) {        
    tempArr[i].push(freqArr[i][j]);
  }
}

您在 tempArr 中创建了第一个主数组,在您的 for 中,每次循环时,tempArr[i] 都会创建为一个数组,并且在第二个 for 中,您希望将 freqArr 的值推送到内部数组。

UPDATE 在 tempArr[i] 中有一个空格,肯定会导致它无法正常工作。对不起!

关于google-apps-script - 创建二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13575077/

相关文章:

google-apps-script - 如何使用应用程序脚本删除特定单元格?

javascript - Google Apps 脚本自动大写

api - 深入调试 UrlFetchApp.fetch() ?返回 - 'Address unavailable'

javascript - 使用 Google Apps 脚本删除 Gmail 电子邮件的附件

javascript - 在 Google 表格中移动单元格范围

google-apps-script - 如何使用 Google Apps 脚本将 "File upload question"添加到表单?

google-apps-script - 使用 TextFinder 搜索范围比搜索整个工作表慢

google-apps-script - DocumentApp.getActiveDocument() 返回 null

google-apps-script - 当某个单元格的值发生变化时,Google Sheet onEdit

Excel 到 Google 文档 - 脚本