Задать вопрос
@WarriorKodeK

Как правильно отфильтровать данные?

Всем привет.
Есть массив:
const arr = [
  {
    name: 'Alex',
    sessions: [
      { startDate: '2021/09/12' },
      { startDate: '2021/09/13' },
      { startDate: '2021/09/14' },
      { startDate: '2021/09/15' },
    ],
  },
  {
    name: 'John',
    sessions: [
      { startDate: '2021/09/01' },
      { startDate: '2021/09/04' },
      { startDate: '2021/09/07' },
      { startDate: '2021/09/19' },
    ],
  },
];


Мне нужно его отфильтровать по вложенным sessions у которых нет передаваемой даты сессии
Например sessionStartDate = 2021/09/19
Мне должен вернуться массив только с пользователем Alex, потому что у него этой сессии нету

const getUser = (sessionStartDate = "2021/09/19") {
  return arr.map(item => item.sessions.filter(session => session.startDate !==sessionStartDate ))
 }
  • Вопрос задан
  • 138 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const result = arr.filter(n => n.sessions.every(m => m.startDate !== sessionStartDate));

или

const result = [];

OUTER:
for (const n of arr) {
  for (const m of n.sessions) {
    if (m.startDate === sessionStartDate) {
      continue OUTER;
    }
  }

  result.push(n);
}
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
const getUser = (sessionStartDate) => arr.filter((user) => !user.sessions.some(session => session.startDate === sessionStartDate ));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы