Subconjuntos y superconjuntos
Parte de la sección Lógica y Flujo del Journey de JavaScript de Coddy — lección 40 de 65.
Un conjunto A es un subconjunto del conjunto B si cada elemento de A es también un elemento de B. Por el contrario, B es un superconjunto de A si contiene todos los elementos de A.
Dos conjuntos son iguales si contienen exactamente los mismos elementos. Por ejemplo, vamos a crear algunas pruebas:
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]);Función para comprobar si setA es un subconjunto de setB:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}Función para comprobar si setA es un superconjunto de setB:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}Función para comprobar si dos conjuntos son iguales:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}Probando la relación de subconjunto:
// ¿Es A un subconjunto de B?
isSubset(setA, setB) // true
// ¿Es B un subconjunto de A?
isSubset(setB, setA) // false
// ¿Es D un subconjunto de B?
isSubset(setD, setB) // falseProbando la relación de superconjunto:
// ¿Es B un superconjunto de A?
isSuperset(setB, setA) // true
// ¿Es A un superconjunto de B?
isSuperset(setA, setB) // falseComprobando la igualdad:
// ¿A es igual a C?
areEqual(setA, setC) // true
// ¿A es igual a B?
areEqual(setA, setB) // false
// ¿A es igual a D?
areEqual(setA, setD) // falseDesafío
FácilCrea una función llamada analyzeSetRelations que tome dos arrays como parámetros: arr1 y arr2. La función debe convertir los arrays en conjuntos (sets) y devolver un objeto con las siguientes propiedades:
isSubset: un booleano que indica siset1es un subconjunto deset2isSuperset: un booleano que indica siset1es un superconjunto deset2isEqual: un booleano que indica siset1yset2tienen exactamente los mismos elementos
Hoja de referencia
Un conjunto A es un subconjunto del conjunto B si cada elemento de A es también un elemento de B. Por el contrario, B es un superconjunto de A si contiene todos los elementos de A. Dos conjuntos son iguales si contienen exactamente los mismos elementos.
Comprueba si setA es un subconjunto de setB:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}Comprueba si setA es un superconjunto de setB:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}Comprueba si dos conjuntos son iguales:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}Pruébalo tú mismo
function analyzeSetRelations(arr1, arr2) {
let set1 = new Set(arr1);
let set2 = new Set(arr2);
// Usa .every() y .has() para comprobar las relaciones entre conjuntos
let isSubset = false; // TODO: comprobar si cada elemento de set1 existe en set2
let isSuperset = false; // TODO: comprobar si cada elemento de set2 existe en set1
let isEqual = false; // TODO: comprobar si ambos conjuntos tienen el mismo tamaño y isSubset es verdadero
return {
isSubset: isSubset,
isSuperset: isSuperset,
isEqual: isEqual
};
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Strings en profundidad
Fundamentos de stringsIterar sobre stringsTemplate LiteralsMétodos de stringsResumen - String Weaver4JSON Parte 2
Iterar sobre JSONJSON anidadoEncadenamiento opcional en JSONCopia superficial y profundaResumen - Tienda de bicicletasResumen - Sistema solar7Sistema de Gestión de Biblioteca
Descripción general del proyectoAñadir libros10Gestionar el sistema del festival
Descripción general del proyectoAñadir películas y sedes2Arreglos multidimensionales
Conceptos básicos de arreglos 2DAcceso a elementos de arreglos 2DBucles anidados con arreglos 2DResumen - Arreglos 2DSuma y resta de matricesArreglos irregulares (Jagged Arrays)Arreglos 3D y más alláPatrones comunes en arreglos 2DResumen - Todo sobre arreglos5Conjuntos Parte 1
¿Qué es un conjunto?Iterar sobre conjuntosAñadir un elementoEliminar un elementoComprobar si un elemento existeTamaño y Is EmptyCopy y ClearResumen - Conceptos básicos de conjuntos8Temas interesantes de Arrays
Desestructuración de ArraysSintaxis Spread en ArraysArrays dispersosResumen - Taller de Arrays3JSON Parte 1
¿Qué es un JSON?Comprobar si existe una claveMétodos de objetoEl Spread Operator Parte 1El Spread Operator Parte 2Eliminar clavesResumen - Manipular claves de JSON6Conjuntos Parte 2
Matemáticas - Unión de conjuntosMatemáticas - Intersección de conjuntosMatemáticas - Diferencia de conjuntosMatemáticas - Diferencia simétricaSubconjuntos y superconjuntosRepaso - Agrupar amigos