![](/img/trans.png)
[英]How do I combine two arrays in react to get a new one with all of the items from the previous two?
[英]How do I combine all arrays into one
我有一個循環功能,可以在其中找到所有ID,然后將獲取所有詳細信息報告中的每個ID。
我將每個ID詳細信息存儲在'reportData'數組中。
當前它將逐個打印每個數組。
我嘗試了很多更改,但似乎我的問題只是一個簡單的邏輯放置。
function IDDetails()
{
var ID = []
for (row = 4; row < 150; row++)
{
var col = 4;
var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
var activeSheetTab = activeSheet.getSheetByName('Newsletter Report');
var ID = activeSheetTab.getRange(row, col).getValue();
if (ID.length != 0){
var root = '';
var endpoint1 = '';
var endpoint2 = '';
var params =
{
'method': 'GET',
'muteHttpExceptions': true,
'headers': {'Authorization': 'apikey ' + API_KEY}
};
try
{
var response = UrlFetchApp.fetch();
var data = response.getContentText();
var json = JSON.parse(data);
var report = json['details'];
var reportData = [];
for (var i = 0; i < report.length; i++)
{
reportData.push([
ID,
report[i]["item1"],
report[i]["item2"],
report[i]["item3"]
]);
}
} catch(e) {
Logger.log(e);
};
Logger.log(reportData);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Details');
var numRows = reportData.length;
var numCols = reportData[0].length;
sheet.getRange(2,1,numRows,numCols).setValues(reportData);
}
else {}
}
}
但是,我要做的是,將所有ID的詳細信息存儲在一個數組中,稱之為“ reportDataALL”
然后將其打印為一個。
結果示例:
ID 1:
+---+---------+--------+--------+
|ID | item1 | item2 | item3 |
+---|---------+--------+--------+
| 1 | xxx | yyy | zzz |
+---+---------+--------+--------+
| 1 | ooo | rrr | eee |
+---+---------+--------+--------+
ID 2:
+---+---------+--------+--------+
|ID |item1 | item2 | item3 |
+---|---------+--------+--------+
| 2 | aaa | bbb | ccc |
+---+---------+--------+--------+
| 2 | ggg | ppp | lll |
+---+---------+--------+--------+
我期望的是:
ALL ID
reportDataALL
+---+---------+--------+---------+
|ID | item1 | item2 | item3 |
+---|---------+--------+---------+
| 1 | xxx | yyy | zzz |
+---|---------+--------+---------+
| 1 | ooo | rrr | eee |
+---+---------+--------+---------+
| 2 | aaa | bbb | ccc |
+---+---------+--------+---------+
| 2 | ggg | ppp | lll |
+---+---------+--------+---------+
我認為您創建了很多新表,但是您應該將它們推入主結果表
function IDDetails()
{
var ID = []
var reportData = []; /// <<<<<<<<< the target array
for (row = 4; row < 150; row++)
{
var col = 4;
var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
var activeSheetTab = activeSheet.getSheetByName('Newsletter Report');
var ID = activeSheetTab.getRange(row, col).getValue();
if (ID.length != 0){
var root = '';
var endpoint1 = '';
var endpoint2 = '';
var params =
{
'method': 'GET',
'muteHttpExceptions': true,
'headers': {'Authorization': 'apikey ' + API_KEY}
};
try
{
var response = UrlFetchApp.fetch();
var data = response.getContentText();
var json = JSON.parse(data);
var report = json['details'];
for (var i = 0; i < report.length; i++)
var DETAILS=[]; //create next dimension
DETAILS[0]=id;
DETAILS[1]=report[i]["item1"];
DETAILS[2]=report[i]["item2"];
DETAILS[3]=report[i]["item3"];
reportData.push(DETAILS) ;
} catch(e) {
Logger.log(e);
};
Logger.log(reportData);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Details');
var numRows = reportData.length;
var numCols = reportData[0].length;
sheet.getRange(2,1,numRows,numCols).setValues(reportData);
}
else {}
}
}
現在您可以使用
reportData[i][j]
如果您想擁有二維數組
與對象相同
var DETAILS={}; //same as object
DETAILS[id]=id;
DETAILS["item1"]=report[i]["item1"];
DETAILS["item2"]=report[i]["item2"];
DETAILS["item3"]=report[i]["item3"];
reportData.push(DETAILS) ;
通過訪問
reportData[i].id
reportData[i].item1
等等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.