Я устанавливаю скрипт, который получает все UUID из определенных столбцов определенных листов, но хочет только уникальные UUID. Я не хочу включать дубликаты, так как все UUID вызывают вызов API с ограниченным количеством вызовов в день.
Я создал скрипт со следующим кодом:
- Получить все UUID из определенных столбцов
- Создать массив для хранения уникальных UUID
- Используйте indexOf <0, чтобы проверить, является ли UUID дубликатом </li>
// All sheets
var overdrachtSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Overdrachten");
var inschrijvingSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Inschrijvingen");
var uitschrijvingSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Uitschrijvingen");
var vergaanvraagSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Vergunningaanvraag");
var zonetoegangSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Zonetoegang");
var playerSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Spelers");
// Get all UUID values
var overdr_uuids = overdrachtSheet.getRange("G8:G").getValues().filter(function(uuid){ return uuid != "" });
var inschr_uuids = inschrijvingSheet.getRange("C8:C").getValues().filter(function(uuid){ return uuid != "" });
var uitschr_uuids = uitschrijvingSheet.getRange("C8:C").getValues().filter(function(uuid){ return uuid != "" });
var vergaanvr_uuids = vergaanvraagSheet.getRange("C8:C").getValues().filter(function(uuid){ return uuid != "" });
var zonetoeg_uuids = zonetoegangSheet.getRange("C8:C").getValues().filter(function(uuid){ return uuid != "" });
// Get an array with unique UUID values only
var unique_uuids = [];
overdr_uuids.forEach(function(uuid){
if(unique_uuids.indexOf(uuid[0]) < 0){
unique_uuids.push(uuid[0]);
}
})
inschr_uuids.forEach(function(uuid){
if(unique_uuids.indexOf(uuid[0]) < 0){
unique_uuids.push(uuid[0]);
}
})
uitschr_uuids.forEach(function(uuid){
if(unique_uuids.indexOf(uuid[0]) < 0){
unique_uuids.push(uuid[0]);
}
})
vergaanvr_uuids.forEach(function(uuid){
if(unique_uuids.indexOf(uuid) < 0){
unique_uuids.push(uuid[0]);
}
})
zonetoeg_uuids.forEach(function(uuid){
if(unique_uuids.indexOf(uuid) < 0){
unique_uuids.push(uuid[0]);
}
})
var setValuesArray = [];
unique_uuids.forEach(function(uuid){
setValuesArray.push([uuid]);
})
Я все еще получаю повторяющиеся результаты в setValuesArray: http://prntscr.com/ngxpi5.
Когда я добавляю несколько журналов перед .push в проверке if (indexOf <0), я вижу значение indexOf равным 0,0 или выше, но как ... </p>