📔 Hari 10
Set
Set itu kumpulan elemen. Set cuma bisa berisi elemen unik ya, nggak boleh ada yang dobel! Yuk kita lihat cara bikin set di bagian berikut.
Membuat set kosong
const companies = new Set()
console.log(companies)
Set(0) {}
Membuat set dari array
const languages = [
'English',
'Finnish',
'English',
'French',
'Spanish',
'English',
'French',
]
const setOfLanguages = new Set(languages)
console.log(setOfLanguages)
Set(4) {"English", "Finnish", "French", "Spanish"}
Set adalah objek yang bisa diiterasi dan kita bisa ngiterasi setiap elemennya. Simpel!
const languages = [
'English',
'Finnish',
'English',
'French',
'Spanish',
'English',
'French',
]
const setOfLanguages = new Set(languages)
for (const language of setOfLanguages) {
console.log(language)
}
English
Finnish
French
Spanish
Menambahkan elemen ke set
const companies = new Set() // creating an empty set
console.log(companies.size) // 0
companies.add('Google') // add element to the set
companies.add('Facebook')
companies.add('Amazon')
companies.add('Oracle')
companies.add('Microsoft')
console.log(companies.size) // 5 elements in the set
console.log(companies)
Set(5) {"Google", "Facebook", "Amazon", "Oracle", "Microsoft"}
Kita juga bisa pakai perulangan buat nambahin elemen ke set. Nih contohnya:
const companies = ['Google', 'Facebook', 'Amazon', 'Oracle', 'Microsoft']
setOfCompanies = new Set()
for (const company of companies) {
setOfCompanies.add(company)
}
Set(5) {"Google", "Facebook", "Amazon", "Oracle", "Microsoft"}
Menghapus elemen dari set
Kita bisa hapus elemen dari set pake metode delete. Gampang banget!
console.log(companies.delete('Google'))
console.log(companies.size) // 4 elements left in the set
Memeriksa elemen dalam set
Metode has bisa bantu kita ngecek apakah elemen tertentu ada di dalam set.
console.log(companies.has('Apple')) // false
console.log(companies.has('Facebook')) // true
Mengosongkan set
Ini bakal hapus semua elemen dari set. Bersih kinclong!
companies.clear()
console.log(companies)
Set(0) {}
Lihat contoh di bawah buat lebih paham cara pakai set.
const languages = [
'English',
'Finnish',
'English',
'French',
'Spanish',
'English',
'French',
]
const langSet = new Set(languages)
console.log(langSet) // Set(4) {"English", "Finnish", "French", "Spanish"}
console.log(langSet.size) // 4
const counts = []
const count = {}
for (const l of langSet) {
const filteredLang = languages.filter((lng) => lng === l)
console.log(filteredLang) // ["English", "English", "English"]
counts.push({ lang: l, count: filteredLang.length })
}
console.log(counts)
[
{ lang: 'English', count: 3 },
{ lang: 'Finnish', count: 1 },
{ lang: 'French', count: 2 },
{ lang: 'Spanish', count: 1 },
]
Kasus penggunaan lain dari set, misalnya buat ngitung item unik dalam array. Cakep!
const numbers = [5, 3, 2, 5, 5, 9, 4, 5]
const setOfNumbers = new Set(numbers)
console.log(setOfNumbers)
Set(5) {5, 3, 2, 9, 4}
Gabungan (Union) set
Buat nyari gabungan dua set bisa dilakukan pake spread operator. Nih kita cari gabungan set A dan set B (A U B)
let a = [1, 2, 3, 4, 5]
let b = [3, 4, 5, 6]
let c = [...a, ...b]
let A = new Set(a)
let B = new Set(b)
let C = new Set(c)
console.log(C)
Set(6) {1, 2, 3, 4, 5,6}
Irisan (Intersection) set
Buat nyari irisan dua set bisa dilakukan pake filter. Nih kita cari irisan set A dan set B (A ∩ B)
let a = [1, 2, 3, 4, 5]
let b = [3, 4, 5, 6]
let A = new Set(a)
let B = new Set(b)
let c = a.filter((num) => B.has(num))
let C = new Set(c)
console.log(C)
Set(3) {3, 4, 5}
Selisih (Difference) set
Buat nyari selisih antara dua set bisa dilakukan pake filter. Nih kita cari selisih set A dan set B (A \ B)
let a = [1, 2, 3, 4, 5]
let b = [3, 4, 5, 6]
let A = new Set(a)
let B = new Set(b)
let c = a.filter((num) => !B.has(num))
let C = new Set(c)
console.log(C)
Set(2) {1, 2}
Map
Membuat Map kosong
const map = new Map()
console.log(map)
Map(0) {}
Membuat Map dari array
countries = [
['Finland', 'Helsinki'],
['Sweden', 'Stockholm'],
['Norway', 'Oslo'],
]
const map = new Map(countries)
console.log(map)
console.log(map.size)
Map(3) {"Finland" => "Helsinki", "Sweden" => "Stockholm", "Norway" => "Oslo"}
3
Menambahkan nilai ke Map
const countriesMap = new Map()
console.log(countriesMap.size) // 0
countriesMap.set('Finland', 'Helsinki')
countriesMap.set('Sweden', 'Stockholm')
countriesMap.set('Norway', 'Oslo')
console.log(countriesMap)
console.log(countriesMap.size)
Map(3) {"Finland" => "Helsinki", "Sweden" => "Stockholm", "Norway" => "Oslo"}
3
Mengambil nilai dari Map
console.log(countriesMap.get('Finland'))
Helsinki
Memeriksa kunci dalam Map
Periksa apakah kunci ada di dalam map pake metode has. Ini ngembaliin true atau false. Simpel kan!
console.log(countriesMap.has('Finland'))
true
Ambil semua nilai dari map pake perulangan:
for (const country of countriesMap) {
console.log(country)
}
(2) ["Finland", "Helsinki"]
(2) ["Sweden", "Stockholm"]
(2) ["Norway", "Oslo"]
for (const [country, city] of countriesMap){
console.log(country, city)
}
Finland Helsinki
Sweden Stockholm
Norway Oslo
🌕 Kamu udah mencapai tonggak besar, gilak! Udah nggak terhentikan lagi nih. Gas terus! Kamu baru aja nyelesein tantangan hari ke-10 dan selangkah lebih dekat menuju kehebatan. Sekarang latihan buat otak dan otot kamu, yuk!
Latihan
Latihan: Level 1
const a = [4, 5, 8, 9]
const b = [3, 4, 5, 7]
const countries = ['Finland', 'Sweden', 'Norway']
- Buat set kosong
- Buat set berisi 0 hingga 10 menggunakan perulangan
- Hapus elemen dari set
- Kosongkan set
- Buat set berisi 5 elemen string dari array
- Buat map dari negara dan jumlah karakter negaranya
Latihan: Level 2
- Cari gabungan a dan b
- Cari irisan a dan b
- Cari selisih a dan b
Latihan: Level 3
-
Berapa banyak bahasa yang ada dalam file objek countries.
-
*** Gunakan data countries untuk menemukan 10 bahasa yang paling banyak digunakan:
// Output Anda seharusnya terlihat seperti ini
console.log(mostSpokenLanguages(countries, 10))
[
{ English: 91 },
{ French: 45 },
{ Arabic: 25 },
{ Spanish: 24 },
{ Russian: 9 },
{ Portuguese: 9 },
{ Dutch: 8 },
{ German: 7 },
{ Chinese: 5 },
{ Swahili: 4 },
{ Serbian: 4 }
]
// Output Anda seharusnya terlihat seperti ini
console.log(mostSpokenLanguages(countries, 3))
[
{English:91},
{French:45},
{Arabic:25}
]
🎉 SELAMAT! 🎉