Subconjuntos e Superconjuntos
Parte da seção Lógica & Fluxo do Journey de JavaScript da Coddy — lição 40 de 65.
Um conjunto A é um subconjunto do conjunto B se cada elemento de A também for um elemento de B. Inversamente, B é um superconjunto de A se contiver todos os elementos de A.
Dois conjuntos são iguais se contiverem exatamente os mesmos elementos. Por exemplo, vamos criar alguns testes:
const setA = new Set([1, 2, 3]);
const setB = new Set([1, 2, 3, 4, 5]);
const setC = new Set([1, 2, 3]);
const setD = new Set([6, 7, 8]);Função para verificar se setA é um subconjunto de setB:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}Função para verificar se setA é um superconjunto de setB:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}Função para verificar se dois conjuntos são iguais:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}Testando a relação de subconjunto:
// A é subconjunto de B?
isSubset(setA, setB) // true
// B é subconjunto de A?
isSubset(setB, setA) // false
// D é subconjunto de B?
isSubset(setD, setB) // falseTestando a relação de superconjunto:
// B é superconjunto de A?
isSuperset(setB, setA) // true
// A é superconjunto de B?
isSuperset(setA, setB) // falseTestando igualdade:
// A é igual a C?
areEqual(setA, setC) // true
// A é igual a B?
areEqual(setA, setB) // false
// A é igual a D?
areEqual(setA, setD) // falseDesafio
FácilCrie uma função chamada analyzeSetRelations que recebe dois arrays como parâmetros: arr1 e arr2. A função deve converter os arrays em conjuntos (sets) e retornar um objeto com as seguintes propriedades:
isSubset: um booleano indicando seset1é um subconjunto deset2isSuperset: um booleano indicando seset1é um superconjunto deset2isEqual: um booleano indicando seset1eset2possuem exatamente os mesmos elementos
Folha de consulta
Um conjunto A é um subconjunto do conjunto B se cada elemento de A também for um elemento de B. Inversamente, B é um superconjunto de A se contiver todos os elementos de A. Dois conjuntos são iguais se contiverem exatamente os mesmos elementos.
Verifique se setA é um subconjunto de setB:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}Verifique se setA é um superconjunto de setB:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}Verifique se dois conjuntos são iguais:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}Experimente você mesmo
function analyzeSetRelations(arr1, arr2) {
let set1 = new Set(arr1);
let set2 = new Set(arr2);
// Use .every() e .has() para verificar as relações entre os conjuntos
let isSubset = false; // TODO: verificar se cada elemento de set1 existe em set2
let isSuperset = false; // TODO: verificar se cada elemento de set2 existe em set1
let isEqual = false; // TODO: verificar se ambos os conjuntos têm o mesmo tamanho e se isSubset é verdadeiro
return {
isSubset: isSubset,
isSuperset: isSuperset,
isEqual: isEqual
};
}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