Математика — Симметрическая разность
Часть раздела Логика и поток путешествия по JavaScript на Coddy — урок 39 из 65.
Симметрическая разность двух множеств A и B — это новое множество, которое содержит элементы, находящиеся либо в A, либо в B, но не в обоих одновременно. Ее можно представить как объединение A - B и B - A.
Например:
const set1 = new Set(arr1);
const set2 = new Set(arr2);
// Создаем симметрическую разность
const symmetricDiff = new Set([
...set1.difference(set2),
...set2.difference(set1)
]);
// Преобразуем обратно в массив
const result = Array.from(symmetricDiff);Задание
ЛегкоСоздайте функцию с названием efficientSymmetricDifference, которая принимает два массива в качестве параметров: arr1 и arr2. Функция должна преобразовать массивы в множества. Создайте новый Set, который является симметрической разностью двух входных множеств, преобразуйте его в массив и верните этот массив.
Шпаргалка
Симметрическая разность двух множеств содержит элементы, которые присутствуют в одном из множеств, но не в обоих сразу. Это объединение A - B и B - A. Например:
// Преобразование массивов в множества
const set1 = new Set(arr1);
const set2 = new Set(arr2);
// Создание симметрической разности
const symmetricDiff = new Set([
...set1.difference(set2),
...set2.difference(set1)
]);
// Преобразование обратно в массив
const result = Array.from(symmetricDiff);Попробуйте сами
function efficientSymmetricDifference(arr1, arr2) {
const set1 = new Set(arr1)
const set2 = new Set(arr2)
const symDiff = new Set();
// Напишите свой код здесь
return Array.from(symDiff);
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и поток
1Строки в деталях
Основы работы со строкамиИтерация по строкамШаблонные литералыМетоды строкИтоги — String Weaver4JSON Часть 2
Итерация по JSONВложенный JSONОпциональная цепочка JSONПоверхностное и глубокое копированиеПовторение — Магазин велосипедовПовторение — Солнечная система7Система управления библиотекой
Обзор проектаДобавление книг10Управление системой фестиваля
Обзор проектаДобавление фильмов и площадок2Многомерные массивы
Основы 2D массивовДоступ к элементам 2D массиваВложенные циклы и 2D массивыПовторение: 2D массивыСложение и вычитание матрицСтупенчатые массивы3D массивы и далееРаспространенные паттерны 2D массивовПовторение: всё о массивах5Множества. Часть 1
Что такое множество?Итерация по множествамДобавление элементаУдаление элементаПроверка наличия элементаРазмер и проверка на пустотуКопирование и очисткаИтоги — Основы множеств8Интересные темы о массивах
Деструктуризация массивовСинтаксис Spread в массивахРазреженные массивыИтоги — Воркшоп по массивам3JSON. Часть 1
Что такое JSON?Проверка наличия ключаМетоды объектовОператор spread. Часть 1Оператор spread. Часть 2Удаление ключейПовторение: манипуляции с ключами JSON6Множества. Часть 2
Математика — Объединение множествМатематика — Пересечение множествМатематика — Разность множествМатематика — Симметрическая разностьПодмножества и надмножестваПовторение — Группировка друзей