Проверяет умение сравнивать массивы по множеству значений, игнорируя порядок и дубликаты, что важно при работе с коллекциями данных.
Сравнение массивов как множеств — это задача, которая часто встречается при проверке данных, например, при сравнении выбранных пользователем тегов, ролей или прав доступа. Обычное сравнение через === или JSON.stringify здесь не подходит, потому что оно учитывает порядок и дубликаты, а нам нужно сравнивать именно наборы уникальных значений.
Сначала преобразуем каждый массив в множество уникальных элементов. В JavaScript для этого есть встроенный объект Set, который автоматически удаляет дубликаты. Затем сравниваем два множества: они равны, если у них одинаковый размер и все элементы одного содержатся в другом.
function arraysEqualAsSets(a, b) {
const setA = new Set(a);
const setB = new Set(b);
if (setA.size !== setB.size) return false;
for (const item of setA) {
if (!setB.has(item)) return false;
}
return true;
}
console.log(arraysEqualAsSets([1, 2, 2, 3], [3, 1, 2])); // true
console.log(arraysEqualAsSets([1, 2], [1, 2, 3])); // false
Итог: этот подход стоит применять, когда нужно проверить равенство наборов значений без учёта порядка и дубликатов — например, при сравнении прав, тегов или результатов выборки.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию