javascript - 遍历数组中的 API 调用(GAS/Javascript)
问题描述
我对 JS 和 GAS 还是很陌生。我有一个 API 调用来从 gov.uk API 系统获取某些数据。我已经到了可以调用一个变量(在本例中为 VRM)并从中获取我需要的某些数据的地步,但我想添加另一个版本,我可以在其中放入大量 VRM 列表并取出 1 个部分(日期)并将该日期添加到该 VRM 旁边。我尝试在其中添加一个 for 循环以循环数组中的 VRM,并且我也尝试在 for 循环中添加此代码,但没有成功。
这是我的代码(出于显而易见的原因,空白键和链接);非常感谢任何建议。
function motapi(reg) {
// Clear Sheet before running
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var destSheet = ss.getSheetByName("regList");
var clearPrevious = destSheet.getRange('B2:B').clearContent();
var lastRow = destSheet.getLastRow();
//call api
var vrm = SpreadsheetApp.getActiveSheet().getRange(2,1).getValue();
var keyoptions = {
method : "GET",
headers : {
"Accept": "application/json+v6",
"x-api-key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
};
var url = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' + vrm;
var response = UrlFetchApp.fetch(url, keyoptions);
var prompt = vrm + " | API call complete";
// Logger.log(response)
//parse response
// var json = JSON.parse(response);
var json = response.getContentText();
var data = JSON.parse(json);
Logger.clear();
// Logger.log(data);
// log seperate parts of json parse
// Logger.log(data[0]["motTests"]);
Logger.log(data[0].motTests[0].expiryDate);
var dataSet = data[0].motTests //[0].expiryDate;
// Log expiry dates
var rows = [],
data;
for (i = 0; i < dataSet.length; i++) {
data = dataSet[i];
rows.push([data.expiryDate]); //your JSON entities here
};
// Logger.log(rows);
// return api call variables to function
return {
motdata: json,
};
}
function goodWay() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('regList');
var rangeData = sheet.getDataRange();
var lastColumn = rangeData.getLastColumn();
var lastRow = rangeData.getLastRow();
var searchRange = sheet.getRange(1,1, lastRow-1, lastColumn-1);
var motApi = motapi();
// Get array of values in the search Range
var rangeValues = searchRange.getValues();
Logger.log(rangeValues);
// Loop through array and if condition met, add relevant
// background color.
for ( i = 0; i < lastColumn - 1; i++){
for ( j = 0 ; j < lastRow - 1; j++){
if(rangeValues[j][i] === "-"){
sheet.getRange(j+1,i+2).push(motApi);
}else if (rangeValues[j][i] === 0){
sheet.getRange(j+2,i+2).setValue();
};
};
};
}
解决方案
推荐阅读
- python - 我正在尝试在烧瓶中扩展一个 html 文件,但它没有反映在输出中?
- php - 如何在 Livewire 中使用嵌套表单字段?
- python - pandas read_html / 找不到表
- javascript - 如果用户在我的网站上活跃,如何运行倒计时?
- push-notification - IOS上的Flurry推送通知,无法上传证书
- django - 通过 django 请求读取 XMLStreamReader 时出错
- discord - 在 Discord.py 中制作验证机器人
- python - python3 为什么我的比较会改变格式?
- javascript - 尝试使用带有 Selenium 和 Javascript 的 getText() 方法获取文本
- react-native - 如何在没有触摸效果的情况下滚动平面列表