Menu
Coddy logo textTech

Математика — Разность множеств

Часть раздела Логика и поток путешествия по 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 }
challenge icon

Задание

Легко

Создайте функцию с именем 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);
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и поток