Математика — Разность множеств
Часть раздела Логика и поток путешествия по JavaScript на Coddy — урок 38 из 65.
Разность двух множеств A и B (часто записываемая как A - B) — это новое множество, содержащее элементы, которые входят в A, но не входят в B. Эта операция не является коммутативной, что означает, что A - B не обязательно совпадает с B - A.
Например:
const setA = new Set([1, 2, 3, 4, 5]);
const setB = new Set([3, 4, 5, 6, 7]);
// A - B: элементы, которые есть в A, но нет в B
const differenceAB = new Set([...setA].filter(x => !setB.has(x)));
console.log('A - B:', differenceAB); // Set { 1, 2 }
// B - A: элементы, которые есть в B, но нет в A
const differenceBA = new Set([...setB].filter(x => !setA.has(x)));
console.log('B - A:', differenceBA); // Set { 6, 7 }Задание
ЛегкоСоздайте функцию с именем setDifference, которая принимает два массива в качестве параметров: arr1 и arr2. Функция должна преобразовать массивы в наборы (sets). Создайте новый Set, который содержит элементы, присутствующие в set1, но отсутствующие в set2, преобразуйте его в массив и верните его.
Шпаргалка
Разность двух множеств A и B (A - B) создает новое множество, содержащее элементы, которые есть в A, но отсутствуют в B. Эта операция не является коммутативной (A - B ≠ B - A).
Чтобы найти разность между множествами, преобразуйте массивы в множества и используйте операции над множествами, чтобы найти элементы, которые есть в первом множестве, но отсутствуют во втором. Например:
const setA = new Set([1, 2, 3, 4, 5]);
const setB = new Set([3, 4, 5, 6, 7]);
// A - B: элементы, которые есть в A, но нет в B
const differenceAB = new Set([...setA].filter(x => !setB.has(x)));
console.log('A - B:', differenceAB); // Set { 1, 2 }
// B - A: элементы, которые есть в B, но нет в A
const differenceBA = new Set([...setB].filter(x => !setA.has(x)));
console.log('B - A:', differenceBA); // Set { 6, 7 }Попробуйте сами
function setDifference(arr1, arr2) {
const set1 = new Set(arr1)
const set2 = new Set(arr2)
const differenceSet = new Set();
// Напишите ваш код здесь
return Array.from(differenceSet);
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и поток
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
Математика — Объединение множествМатематика — Пересечение множествМатематика — Разность множествМатематика — Симметрическая разностьПодмножества и надмножестваПовторение — Группировка друзей