Функция для объединения уникальных символов из отфильтрованных записей

Отфильтруйте expired=false, отсортируйте по order, разверните каждую value, объедините и удалите повторные символы через Set. Для примера получится 1zyx2badc.

Короткий ответ

Что ответить на собеседовании

Отфильтруйте expired=false, отсортируйте по order, разверните каждую value, объедините и удалите повторные символы через Set. Для примера получится 1zyx2badc.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо реализовать функцию (или последовательность операций), которая возвращает строку, сформированную по следующим правилам:

  • берём только те объекты, у которых поле expired равно false;
  • сортируем отобранные элементы по возрастанию свойства order;
  • из каждого выбранного объекта берём строку из поля value, разворачиваем её символы в обратном порядке и объединяем их в одну строку;
  • итоговая строка должна содержать каждый символ лишь один раз (удаляем дубли). Пример входных данных:
 const input = [
  { value: 'abcd', order: 4, expired: false },
  { value: 'qwer', order: 2, expired: true },
  { value: 'xyz1', order: 1, expired: false },
  { value: 'abx2', order: 3, expired: false },
];

Функция должна вернуть строку, полученную после применения указанных условий к массиву input.

Ответ

Отфильтруйте expired=false, отсортируйте по order, разверните каждую value, объедините и удалите повторные символы через Set. Для примера получится 1zyx2badc.

function collect(input) {
  const joined = input
    .filter(item => item.expired === false)
    .sort((a, b) => a.order - b.order)
    .map(item => [...item.value].reverse().join(''))
    .join('');
  return [...new Set(joined)].join('');
}

После сортировки строки идут как xyz1, abx2, abcd; после разворота — 1zyx, 2xba, dcba. Set сохраняет первое появление символа в объединённой строке. filter создаёт отдельный массив, поэтому sort не меняет input. Символы здесь — Unicode-кодовые точки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее