Не удаляется объект

Получаю JSON с API, в нем есть объекты у которых отсутствуют нужные мне поля и дубликаты от которых мне надо избавиться. Максимум могу получать по 100 объектов, по-этому делаю несколько запросов друг за другом.

Сортирую дубликаты по id и после сортировки вношу их в отдельный массив, чтобы во время следующих запросов сравнивать уже с имеющимися объектами.

После первого запроса все объекты сортируются нормально и ненужные удаляются, но после второго запроса начинают появляться дубликаты.

Вот код первого запроса:

fetch(url, {
      method: "GET",
    })
      .then((content) => content.json())
      .then((content) => {

        for (key in content["results"]) {

          let i = content["results"][key];

          if (typeof(i["imdb_id"]) !== "undefined") { 

            for (key2 in content["results"]) {
              if (i["imdb_id"] === content["results"][key2]["imdb_id"]) {
                delete content["results"][key2];
              }
            }

            let j = i["material_data"];

            if ("description" in j) {
              doubles.push(i["imdb_id"]); 
              list.innerHTML += `
                    <div class="card">
                        <img src="${j["poster_url"]}" alt="${j["title"]}" class="card-img-top m-auto">
                        <div class="card-body justify-content-start">
                            <h5 class="card-title text-truncate">
                                ${j["title"]}
                            </h5>
                            <p class="card-text">
                                15+ · ${i["year"]} · ${j["episodes_aired"]} серий 
                            </p>
                            <div class="flex-row typeTrans">
                                <span class="subbed">Субтитры</span>
                                <span class="dubbed">Озвучено</span>
                            </div>
                        </div>
                        <div class="startWatchingBtn">
                            <a href="#">
                                Начать смотреть
                                <span class="fas fa-chevron-right" style="margin-left: 40px;"></span>
                            </a>
                        </div>
                        <div class="additionalInfo d-flex align-items-center">
                            <p>${j["description"]}</p> 
                        </div>
                    </div> 
                  `;
            } else {
              delete i;
            }
          } else {
            delete i;
          }
        }

        return content
      })

Вот код второго запроса:

.then((content) => {
        fetch(content["next_page"], {
          method: "GET",
        })
          .then((content) => content.json())
          .then((content) => {
            for (key in content["results"]) {
              let i = content["results"][key];

              for (let k of doubles) {
                if (i["imdb_id"] === k) {
                  delete i;
                }
              }

              if (typeof(i["imdb_id"]) !== "undefined") {  

                for (key2 in content["results"]) {
                  if (i["imdb_id"] === content["results"][key2]["imdb_id"]) {
                    delete content["results"][key2]
                  }
                }

                let j = i["material_data"];
                
                if ("description" in j) {
                  doubles.push(i["imdb_id"])    
                  list.innerHTML += `
                  <div class="card">
                      <img src="${j["poster_url"]}" alt="${j["title"]}" class="card-img-top m-auto">
                      <div class="card-body justify-content-start">
                          <h5 class="card-title text-truncate">
                              ${j["title"]}
                          </h5>
                          <p class="card-text">
                              15+ · ${i["year"]} · ${j["episodes_aired"]} серий 
                          </p>
                          <div class="flex-row typeTrans">
                              <span class="subbed">Субтитры</span>
                              <span class="dubbed">Озвучено</span>
                          </div>
                      </div>
                      <div class="startWatchingBtn">
                          <a href="#">
                              Начать смотреть
                              <span class="fas fa-chevron-right" style="margin-left: 40px;"></span>
                          </a>
                      </div>
                      <div class="additionalInfo d-flex align-items-center">
                          <p>${j["description"]}</p> 
                      </div>
                  </div> 
                `;
                } else {
                  delete i;
                }
              } else {
                delete i;
              }
            }
      });

Вот тут собственно и проверяю id с уже имеющимися объектами:

for (let k of doubles) {
  if (i["imdb_id"] === k) {
  delete i;
 }
}

Проблема в том, что он находит дубликат, но не удаляет и пропускает дальше, из-за этого уже в самом массиве появляются дубликаты id объектов и на сайт выводятся дубликаты. Пытался вставлять в разные места кода - не работает.


Ответы (0 шт):