@Vladimir185

Как преобразовать массив?

Всем привет. У меня есть массив вида
const b = [
                { id: 2035, carsIds: [135, 148] },
                { id: 2036, carsIds: [136, 148] }
            ];

Как его превратить в
const c = [
                { carId: 135, ids: [2035] },
                { carId: 136, ids: [2036] },
                { carId: 148, ids: [2035, 2036] }
            ];

Т.е. сделать массив длины столько, сколько уникальных значений в carsIds и в ids положить те id, у которых carsIds встречались в в каждом id
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
@Vladimir185 Автор вопроса
const d = [...new Set(b.map(({ carsIds }) => carsIds).flat())];
            const e = d.map((carId) => {
                const ids = b
                    .filter(({ carsIds }) => carsIds.includes(carId))
                    .map(({ id }) => id);
                return {
                    carId,
                    ids
                };
            });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы