![](/img/trans.png)
[英]How to create a two-dimensional array in PHP and iterate through it with Javascript
[英]How to properly iterate through this two dimensional javascript 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++) {
for (i in data) {
var row = data[i];
array.push(row);
}
}
return array;
}
我用它來構建一個listbox
:
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
:
由於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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.