У меня есть файл JSON с данными, которые мне нужно отфильтровать.
json - это пример структуры:
[{A:"data", C:"flightData", D:"FlightData"},
{B:"data", C:"flightData", D:"FlightData"},
{A:"data", C:"flightData", D:"FlightData"},
{B:"data", C:"flightData"},
{A:"data", C:"flightData", D:"FlightData"},
{B:"data", D:"FlightData"}]
Я использую группу по методу
function groupBy(list, keyGetter) {
const map = new Map();
list.forEach((item) => {
const key = keyGetter(item);
const collection = map.get(key);
if (!collection) {
map.set(key, [item]);
} else {
collection.push(item);
}
});
return map;
}
Сначала я группирую по A или B в массивы
A is [[C],[D]]
и B is[[C],[D]]
Однако, если данные не имеют C или D, мне нужно удалить группу, так как данные не нужны.
for (let value of s1) {
// A or B
const routeGrouped = groupBy(PriceArrayFinal, route =>
route.FinalArrival);
for (let origin of s3) {
// C or D
const originGrouped = groupBy(routeGrouped.get(value), route =>
route.FirstDepartCityName);
Можно ли удалить полную группу, например, A: [ [C], [] ]
, если C или D отсутствуют. Если есть пустой массив, мне нужно удалить группу A или B?
EDIT: ожидаемый результат: все группы A или B имеют C и D
[{A:"data", C:"flightData", D:"FlightData"},
{B:"data", C:"flightData", D:"FlightData"},
{A:"data", C:"flightData", D:"FlightData"},
{A:"data", C:"flightData", D:"FlightData"}]
[ [ [Array], [Array] ], [ [Array], [Array] ] ,[ [Array], [Array] ], [ [Array], [Array] ] ]