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 }Desafio
FácilCrie 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);
}
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
1Strings em Profundidade
Fundamentos de StringsIterar sobre StringsTemplate LiteralsMétodos de StringRecapitulação - String Weaver4JSON Parte 2
Iterar sobre JSONJSON AninhadoEncadeamento Opcional em JSONCópia Rasa e ProfundaRecapitulação - Loja de BicicletasRecapitulação - Sistema Solar7Sistema de Gerenciamento de Biblioteca
Visão Geral do ProjetoAdicionando Livros10Gerenciar Sistema de Festival
Visão Geral do ProjetoAdicionar Filmes e Locais2Arrays Multidimensionais
Fundamentos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DRecapitulação - Arrays 2DAdição e Subtração de MatrizesArrays IrregularesArrays 3D e AlémPadrões Comuns de Arrays 2DRecapitulação - Tudo Sobre Arrays5Sets Parte 1
O que é um Set?Iterando sobre SetsAdicionando um elementoRemovendo um elementoVerificando se um elemento existeTamanho e Is EmptyCopy e ClearRecapitulação - O básico de Sets8Tópicos Interessantes sobre Arrays
Desestruturação de ArraysSintaxe Spread em ArraysArrays EsparsosRecapitulação - Workshop de Arrays3JSON Parte 1
O que é um JSON?Verificar se a Chave ExisteMétodos de ObjetoO Spread Operator Parte 1O Spread Operator Parte 2Remover ChavesRecapitulação - Manipular Chaves JSON6Conjuntos Parte 2
Matemática - União de ConjuntosMatemática - Interseção de ConjuntosMatemática - Diferença de ConjuntosMatemática - Diferença SimétricaSubconjuntos e SuperconjuntosRecapitulação - Agrupar Amigos