Я все еще очень плохо знаком с JS и GAS. У меня есть вызов API для получения определенных данных из системы API gov.uk. Я дошел до того, что я могу вызвать одну переменную (в данном случае 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();
};
};
};
}