...

Примеры сценариев для работы с двумя массивами (объединение, исключение, фильтрация)

Тема в разделе "Примеры сценариев", создана пользователем alekc_bpm87, 4 апр 2023.

  1. alekc_bpm87

    alekc_bpm87 Эксперт

    Кейс 1
    Есть два массива одного типа, требуется их соединить\объединить\суммировать\провести операцию конкатенации.

    orders_today[] - массив элементов приложений Заказы (за сегодня);
    orders_yesterday[] - массив элементов приложений Заказы (за вчера);

    Задача: Получить массив содержащий элементы приложений Заказы за вчера и сегодня.
    Реализация:
    Код:
    
    result_orders orders_yesterday.concat(orders_today);
    
    
    Логика:
    result_orders[] = orders_yesterday[] + orders_today[];

    Кейс 2
    Есть два массива одного типа, требуется из первого массива "вычесть\убрать\исключить" элементы содержащиеся во втором массиве.

    users[] - массив пользователей 1;
    users_completed_plan[] - массив пользователей 2;

    Задача: Получить результирующий массив, содержащий пользователей массива users исключая тех пользователей, которые есть в массиве users_completed_plan.
    Реализация:
    Код:
    
    result_users users.filter(user => users_completed_plan.every(user_cp => user_cp.data.__id != user.data.__id));
    
    
    Логика:
    result_users[] = users[] - users_completed_plan[];

    Кейс 3
    Есть массив с обращениями и массив статусов обращений, требуется получить массив содержащий обращения только в тех статусах, которые содержатся в массиве статусов.

    appeals[] - массив элементов приложений Обращения;
    statuses[] - массив элементов типа Категория (в которой заведены элементы с кодами равными кодам статусам приложения Обращения);

    Задача: Отфильтровать массив appeals по статусам из массива statuses.
    Реализация:
    Код:
    
    result_appeals appeals.filter(appeal => statuses.some(status => status.code == appeal.data.__status!.code));
    
    
    Последнее редактирование: 17 апр 2023