如何正确地遍历这个二维javascript数组?
我有一张这样的纸: 我有这个功能:如何正确地遍历这个二维javascript数组?,javascript,arrays,google-apps-script,multidimensional-array,Javascript,Arrays,Google Apps Script,Multidimensional Array,我有一张这样的纸: 我有这个功能: function getRangeAsArrays(sheet) { var dataRange = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn()); var data = dataRange.getValues(); var array = []; for (var r=0; r<sheet.getLastColumn(); r++) {
function getRangeAsArrays(sheet) {
var dataRange = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn());
var data = dataRange.getValues();
var array = [];
for (var r=0; r<sheet.getLastColumn(); r++) {
for (i in data) {
var row = data[i];
array.push(row);
}
}
return array;
}
但是当我迭代数组长度(4行)时,我得到了这个(我意想不到的)结果,日志显示I
变量一直到14
:
既然
recipientArray.length
应该给我二维数组的第一个维度,而recipientArray[i].length
应该给我第二个维度,既然我想要第一个维度(行数)行来解决这个问题?这里出了什么问题?即使我仍然不确定我是否理解了您需要的内容(我想我有点累了或者我变得愚蠢了……想想看……:),我想知道为什么您要尝试使用单独的函数,因为range.getValues()
返回的值已经是一个数组了。。。二维数组,但仍然是数组
如果您希望每行创建一个列表框,并将以下单元格添加为项目,那么像这样的双循环将完成此任务。(告诉我我是否完全偏离了主题,谢谢)
我编写了一个带有主结构和注释的示例代码来解释事情的发展方向
function test() {
var dataRange = SpreadsheetApp.getActiveSheet().getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn());
var data = dataRange.getValues();
Logger.log(data)
var array = []; // this is useless
for (var r=0; r<data.length; r++) {
// create listBox widget here
//var listBox = app.createListBox().setName('listBox'+r);
for (i in data[0]) {
var cell = data[r][i];
//add items to listBox here
// listBox.addItem(cell);
array.push(cell);// this is useless
}
}
Logger.log(array);//useless
return array;//useless
}
功能测试(){
var dataRange=SpreadsheetApp.getActiveSheet().getRange(2,1,sheet.getLastRow(),sheet.getLastColumn());
var data=dataRange.getValues();
Logger.log(数据)
var array=[];//这没用
对于(var r=0;r我不确定我是否完全理解您需要什么…每个列表项中应该包含哪些数据?您好,@Sergeinsas,列表框中的每一行都重复了3次。我需要每一行为该行生成一个(并且只有一个)项目列表。谢谢!@Sergeinsas,看看我的表上有什么:=))这个周末我就开始读了:-)太好了!!!谢谢!如果你发现有什么不清楚的地方,你知道在哪里可以找到我:-)谢谢,@Sergeinsas!!你既不累也不笨,我没意识到范围已经给了我一个二维数组!所以,我在上面加了更多的维度!非常感谢!我看了你的书d我喜欢有很多代码的书。我已经在亚马逊上读过了。谢谢你写这本书。我会填补我在气体知识方面的很多空白!
function test() {
var dataRange = SpreadsheetApp.getActiveSheet().getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn());
var data = dataRange.getValues();
Logger.log(data)
var array = []; // this is useless
for (var r=0; r<data.length; r++) {
// create listBox widget here
//var listBox = app.createListBox().setName('listBox'+r);
for (i in data[0]) {
var cell = data[r][i];
//add items to listBox here
// listBox.addItem(cell);
array.push(cell);// this is useless
}
}
Logger.log(array);//useless
return array;//useless
}