Menu
Coddy logo textTech

Matemática - Diferença de Conjuntos

Parte da seção Lógica & Fluxo do Journey de JavaScript da Coddy — lição 38 de 65.

A diferença de dois conjuntos A e B (frequentemente escrita como A - B) é um novo conjunto que contém elementos que estão em A, mas não em B. Esta operação não é comutativa, o que significa que A - B não é necessariamente o mesmo que B - A.

Por exemplo:

const setA = new Set([1, 2, 3, 4, 5]);
const setB = new Set([3, 4, 5, 6, 7]);

// A - B: elementos em A, mas não em B
const differenceAB = new Set([...setA].filter(x => !setB.has(x)));
console.log('A - B:', differenceAB); // Set { 1, 2 }

// B - A: elementos em B, mas não em A
const differenceBA = new Set([...setB].filter(x => !setA.has(x)));
console.log('B - A:', differenceBA); // Set { 6, 7 }
challenge icon

Desafio

Fácil

Crie uma função chamada setDifference que recebe dois arrays como parâmetros: arr1 e arr2. A função deve converter os arrays em sets. Crie um novo Set que contenha elementos que estão em set1 mas não em set2, converta-o em um array e retorne-o

Folha de consulta

A diferença de dois conjuntos A e B (A - B) cria um novo conjunto contendo elementos que estão em A, mas não em B. Esta operação não é comutativa (A - B ≠ B - A).

Para encontrar a diferença entre conjuntos, converta arrays em conjuntos e use operações de conjunto para encontrar elementos no primeiro conjunto que não estão no segundo. Por exemplo:

const setA = new Set([1, 2, 3, 4, 5]);
const setB = new Set([3, 4, 5, 6, 7]);

// A - B: elementos em A, mas não em B
const differenceAB = new Set([...setA].filter(x => !setB.has(x)));
console.log('A - B:', differenceAB); // Set { 1, 2 }

// B - A: elementos em B, mas não em A
const differenceBA = new Set([...setB].filter(x => !setA.has(x)));
console.log('B - A:', differenceBA); // Set { 6, 7 }

Experimente você mesmo

function setDifference(arr1, arr2) {
    const set1 = new Set(arr1)
    const set2 = new Set(arr2)
    const differenceSet = new Set();
    // Escreva seu código aqui
    
    
    return Array.from(differenceSet);
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo