Frontend Разработка | JavaScript & Верстка сайтов. HTML, CSS и React. Уроки для Фронтенд Developer. JS, Vue и Web технологии. IT Карьера, Курсы и Coding.
@frontend_1
Фото 🧬 Нативные операции с множествами (Set Methods) Классическая задача на собеседовании: «Найди общие элементы в двух массивах». Обычно мы писали arr1.filter(x => arr2.includes(x)). Это O(N*M) по сложности (медленно) и выглядит многословно. Начиная с ES2024 у объекта Set появились полноценные математические методы. Больше никаких lodash.intersection или самописных хелперов. 🔥 Как это работает теперь: Допустим, у нас есть права доступа пользователей: const editors = new Set(['read', 'write', 'comment']); const admins = new Set(['read', 'write', 'delete', 'ban']); 1. Пересечение (Intersection) Найти, что общего (какие права есть у обоих). const common = editors.intersection(admins); // Set(2) { 'read', 'write' } 2. Разность (Difference) Найти уникальные права (что есть у админа, чего нет у редактора). const uniqueAdmin = admins.difference(editors); // Set(2) { 'delete', 'ban' } 3. Объединение (Union) Слить всё в одну кучу без дублей. const allRights = editors.union(admins); // Set(5) { 'read', 'write', 'comment', 'delete', 'ban' } 4. Симметричная разность (Symmetric Difference) Найти всё, что НЕ пересекается (уникальное для каждой из групп). const uniqueToEach = editors.symmetricDifference(admins); // Set(3) { 'comment', 'delete', 'ban' } Почему это круто: 1. Читаемость: Код говорит сам за себя. 2. Скорость: Нативная реализация на C++ в движке браузера всегда быстрее JS-циклов. 3. Гибкость: Методы принимают не только Set, но и любые итерируемые объекты (массивы, генераторы), автоматически преобразуя их при необходимости (в зависимости от реализации, но лучше передавать Set для гарантии). 👉 @frontend_1
Если у вас установлено приложение,
вы можете сразу перейти в канал