Нормализуйте строки через trim и toLowerCase, создайте Set для каждого массива и оставьте значения, присутствующие во всех наборах.
Напишите функцию, которая возвращает уникальные элементы, общие для всех переданных массивов строк, без учёта регистра, порядка, повторений и пробелов по краям строк.
Нормализуйте строки через trim и toLowerCase, создайте Set для каждого массива и оставьте значения, присутствующие во всех наборах.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Нормализуйте строки через trim и toLowerCase, создайте Set для каждого массива и оставьте значения, присутствующие во всех наборах.
Результат возвращается в нормализованном виде; отсутствие входных массивов даёт пустой массив:
function commonStrings(...arrays) {
if (!arrays.length) return [];
const sets = arrays.map(a => new Set(a.map(s => s.trim().toLowerCase())));
return [...sets[0]].filter(s => sets.every(set => set.has(s)));
}
Контракт предполагает массивы строк. Пустая строка после trim не удаляется автоматически. Для языково-специфического сравнения правила нормализации нужно уточнить отдельно.