我是 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/