Все еще дублируется в массиве при проверке с indexOf <0 - PullRequest
0 голосов
/ 26 апреля 2019

Я устанавливаю скрипт, который получает все 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>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...