3

我是 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 的组合以及更多组合。

4

1 回答 1

8

比我聪明得多的人可能会帮助您更好地编写此代码,但在我看来,您希望创建 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] 中有一个空间,这会导致它肯定不能工作。对不起!

于 2012-11-27T00:09:38.483 回答