Не удаляется объект
Получаю 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 объектов и на сайт выводятся дубликаты. Пытался вставлять в разные места кода - не работает.