Matemática - Diferença Simétrica
Parte da seção Lógica & Fluxo do Journey de JavaScript da Coddy — lição 39 de 65.
A diferença simétrica de dois conjuntos A e B é um novo conjunto que contém elementos que estão em A ou em B, mas não em ambos. Ela pode ser pensada como a união de A - B e B - A.
Por exemplo:
const set1 = new Set(arr1);
const set2 = new Set(arr2);
// Criar a diferença simétrica
const symmetricDiff = new Set([
...set1.difference(set2),
...set2.difference(set1)
]);
// Converter de volta para array
const result = Array.from(symmetricDiff);Desafio
FácilCrie uma função chamada efficientSymmetricDifference que recebe dois arrays como parâmetros: arr1 e arr2. A função deve converter os arrays em sets. Crie um novo Set que seja a diferença simétrica dos dois Sets de entrada, converta-o em um array e retorne o array
Folha de consulta
A diferença simétrica de dois conjuntos contém elementos que estão em qualquer um dos conjuntos, mas não em ambos. É a união de A - B e B - A. Por exemplo:
// Converter arrays para conjuntos
const set1 = new Set(arr1);
const set2 = new Set(arr2);
// Criar a diferença simétrica
const symmetricDiff = new Set([
...set1.difference(set2),
...set2.difference(set1)
]);
// Converter de volta para array
const result = Array.from(symmetricDiff);Experimente você mesmo
function efficientSymmetricDifference(arr1, arr2) {
const set1 = new Set(arr1)
const set2 = new Set(arr2)
const symDiff = new Set();
// Escreva seu código aqui
return Array.from(symDiff);
}
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