gpt4 book ai didi

javascript - 如何正确遍历这个二维 javascript 数组?

转载 作者:行者123 更新时间:2023-11-30 05:37:41 25 4
gpt4 key购买 nike

我有一张这样的表格:

enter image description here

我有这个功能:

    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;
}

我用这种方式构建列表框:

   var recipientArray = getRangeAsArrays(activeSheet);
var item3Panel = app.createHorizontalPanel();
item3Panel.add(app.createLabel("recipient"));
var listBox = app.createListBox().setName('item3');
for(var i = 0; i < (recipientArray.length); i++){
Logger.log("recipientArray[i][2] = " + recipientArray[i][3]);
Logger.log(" i = " + i);
listBox.addItem(recipientArray[i][4]);
}
item3Panel.add(listBox);

但是当我遍历数组长度(4 行)时,我得到了这个(出乎我意料的)结果并且日志显示 i 变量一直到 14:

enter image description here

因为 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
}

关于javascript - 如何正确遍历这个二维 javascript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22676528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com