Subset dan Superset
Termasuk bagian Logika dan Alur dalam perjalanan JavaScript di Coddy. Pelajaran 40 dari 65.
Set A merupakan subset dari set B jika setiap elemen A juga merupakan elemen B. Sebaliknya, B merupakan superset dari A jika B berisi semua elemen A.
Dua set dikatakan sama jika keduanya berisi elemen yang persis sama. Sebagai contoh, mari buat beberapa pengujian:
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]);Fungsi untuk memeriksa apakah setA merupakan subset dari setB:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}Fungsi untuk memeriksa apakah setA merupakan superset dari setB:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}Fungsi untuk memeriksa apakah dua set sama:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}Menguji hubungan subset:
// Apakah A merupakan subset dari B?
isSubset(setA, setB) // true
// Apakah B merupakan subset dari A?
isSubset(setB, setA) // false
// Apakah D merupakan subset dari B?
isSubset(setD, setB) // falseMenguji hubungan superset:
// Apakah B merupakan superset dari A?
isSuperset(setB, setA) // true
// Apakah A merupakan superset dari B?
isSuperset(setA, setB) // falseMenguji kesamaan:
// Apakah A sama dengan C?
areEqual(setA, setC) // true
// Apakah A sama dengan B?
areEqual(setA, setB) // false
// Apakah A sama dengan D?
areEqual(setA, setD) // falseTantangan
MudahBuat fungsi bernama analyzeSetRelations yang menerima dua array sebagai parameter: arr1 dan arr2. Fungsi ini harus mengubah array menjadi set dan mengembalikan object dengan property berikut:
isSubset: nilai boolean yang menunjukkan apakahset1merupakan subset dariset2isSuperset: nilai boolean yang menunjukkan apakahset1merupakan superset dariset2isEqual: nilai boolean yang menunjukkan apakahset1danset2memiliki elemen yang sama persis
Coba sendiri
function analyzeSetRelations(arr1, arr2) {
let set1 = new Set(arr1);
let set2 = new Set(arr2);
// Gunakan .every() dan .has() untuk memeriksa hubungan antar-set
let isSubset = false; // TODO: periksa apakah setiap elemen set1 ada di set2
let isSuperset = false; // TODO: periksa apakah setiap elemen set2 ada di set1
let isEqual = false; // TODO: periksa apakah kedua set berukuran sama dan isSubset bernilai true
return {
isSubset: isSubset,
isSuperset: isSuperset,
isEqual: isEqual
};
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami string
Dasar-dasar stringIterasi pada stringTemplate LiteralsMethod stringRangkuman: Perangkai string4JSON Bagian 2
Menelusuri JSONJSON BersarangOptional Chaining pada JSONSalinan Dangkal dan MendalamUlasan: Toko SepedaUlasan: Tata Surya7Sistem Manajemen Perpustakaan
Ikhtisar ProyekMenambahkan Buku2Array Multidimensi
Dasar-Dasar Array 2DMengakses Elemen Array 2DLoop Bersarang dengan Array 2DRingkasan: Array 2DPenjumlahan dan Pengurangan MatriksArray BergerigiArray 3D dan SeterusnyaPola Umum Array 2DRingkasan: Semua tentang Array5set Bagian 1
Apa Itu set?Melakukan Perulangan pada setMenambahkan ElemenMenghapus ElemenMemeriksa Apakah Elemen AdaUkuran dan Apakah KosongMenyalin dan MengosongkanRangkuman: Dasar-Dasar set8Topik Menarik tentang array
Membongkar arraySintaks spread pada arrayArray renggangRekap: Lokakarya arrayLatihan sendiri: Compiler JavaScript online