Недавно у меня был случай, когда я получил 4 разных коллекции, но они связаны друг с другом вложенным образом, поэтому d связано с c, c связано с b, а b связано с a.
Фильтрация 4 массивов вызывает остановку браузера из-за бесконечного предсказания l oop, поэтому, пытаясь предотвратить это при каждом положительном возникновении, я удалял найденный объект из массива.
.then((response) => {
var rsp = response.data;
rsp.cities.filter((city, c) => {
city.regions = rsp.regions.filter((region, r) => {
region.streets = rsp.streets.filter((street, s) => {
street.buildings = rsp.buildings.filter((building, b) => {
if(building._references.coverage.streets == street.id) {
delete rsp.buildings[b];
return building;
}
})
if(street._references.coverage.regions == region.id) {
delete rsp.streets[s];
return street;
}
})
if(region._references.coverage.cities == city.id) {
delete rsp.regions[r];
return region;
}
});
})
});
Is есть ли лучший / более простой способ использования этого подхода, например, reduce, и как он применим к этому случаю?