我是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从0变为1并且我尝试在tempArr中存储任何东西[i] [j]我得到一个错误“TypeError:无法将属性”0.0“未定义为”xxx“
我已经尝试过创建tempArr的所有组合,我能想到的还有更多。
答案 0 :(得分: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]中有一个空间会导致它无法正常工作。遗憾!