Sottoinsiemi e sovrainsiemi
Fa parte della sezione Logica e flusso del percorso JavaScript di Coddy. Lezione 40 di 65.
Un insieme A è un sottoinsieme dell'insieme B se ogni elemento di A è anche un elemento di B. Viceversa, B è un sovrainsieme di A se contiene tutti gli elementi di A.
Due insiemi sono uguali se contengono esattamente gli stessi elementi. Ad esempio, creiamo alcuni test:
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]);Funzione per verificare se setA è un sottoinsieme di setB:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}Funzione per verificare se setA è un sovrainsieme di setB:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}Funzione per verificare se due insiemi sono uguali:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}Verifica della relazione di sottoinsieme:
// A è un sottoinsieme di B?
isSubset(setA, setB) // true
// B è un sottoinsieme di A?
isSubset(setB, setA) // false
// D è un sottoinsieme di B?
isSubset(setD, setB) // falseVerifica della relazione di sovrainsieme:
// B è un sovrainsieme di A?
isSuperset(setB, setA) // true
// A è un sovrainsieme di B?
isSuperset(setA, setB) // falseVerifica dell'uguaglianza:
// A è uguale a C?
areEqual(setA, setC) // true
// A è uguale a B?
areEqual(setA, setB) // false
// A è uguale a D?
areEqual(setA, setD) // falseSfida
FacileCrea una funzione chiamata analyzeSetRelations che accetti due array come parametri: arr1 e arr2. La funzione dovrebbe convertire gli array in insiemi e restituire un oggetto con le seguenti proprietà:
isSubset: un valore booleano che indica seset1è un sottoinsieme diset2isSuperset: un valore booleano che indica seset1è un sovrainsieme diset2isEqual: un valore booleano che indica seset1eset2contengono esattamente gli stessi elementi
Provalo tu
function analyzeSetRelations(arr1, arr2) {
let set1 = new Set(arr1);
let set2 = new Set(arr2);
// Usa .every() e .has() per verificare le relazioni tra insiemi
let isSubset = false; // TODO: verifica se ogni elemento di set1 è presente in set2
let isSuperset = false; // TODO: verifica se ogni elemento di set2 è presente in set1
let isEqual = false; // TODO: verifica se entrambi gli insiemi hanno la stessa dimensione e isSubset è true
return {
isSubset: isSubset,
isSuperset: isSuperset,
isEqual: isEqual
};
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Fondamenti delle stringheIterare sulle stringheTemplate literalsMetodi delle stringheRiepilogo - Intrecciatore di stringhe4JSON Parte 2
Iterare su JSONJSON annidatoOptional chaining in JSONCopia superficiale e profondaRipasso - Negozio di bicicletteRipasso - Sistema solare7Sistema di gestione della biblioteca
Panoramica del progettoAggiungere libri10Gestire il sistema del festival
Panoramica del progettoAggiungere film e sale2Array multidimensionali
Nozioni di base sugli array 2DAccesso agli elementi di un array 2DCicli annidati con array 2DRipasso: array 2DAddizione e sottrazione di matriciArray frastagliatiArray 3D e oltreSchemi comuni con array 2DRipasso: tutto sugli array5Insiemi Parte 1
Che cos'è un insieme?Iterare sugli insiemiAggiungere un elementoRimuovere un elementoVerificare se un elemento esisteDimensione e verifica del vuotoCopiare e svuotareRiepilogo - Nozioni di base sugli insiemi8Argomenti interessanti sugli array
Destrutturazione degli arraySintassi spread negli arrayArray sparsiRiepilogo - Laboratorio sugli array3JSON Parte 1
Che cos'è JSON?Verificare se una chiave esisteMetodi degli oggettiL'operatore spread Parte 1L'operatore spread Parte 2Rimuovere le chiaviRipasso - Manipolare le chiavi in JSON6Insiemi Parte 2
Matematica - Unione di insiemiMatematica - Intersezione di insiemiMatematica - Differenza di insiemiMatematica - Differenza simmetricaSottoinsiemi e sovrainsiemiRiepilogo - Raggruppa gli amiciEsercitati da solo: Compilatore JavaScript online