Lompati ke konten utama
Modul 6 · Pelajaran 1 dari 421/32 dalam kursus~10 min
Pelajaran modul (1/4)

peta dan filter

Dua metode penting: metode ini mengubah array menjadi array baru, tanpa mengubah array asli.

map: mengubah setiap elemen

Dibutuhkan suatu fungsi, menerapkannya ke setiap elemen, dan mengembalikan array dengan panjang yang sama dengan hasilnya.

JS
const numeri = [1, 2, 3, 4];

const doppi = numeri.map((n) => n * 2);
// [2, 4, 6, 8]

const stringhe = numeri.map((n) => `n=${n}`);
// ['n=1', 'n=2', 'n=3', 'n=4']

Yang asli tetap tidak tersentuh:

JS
numeri; // [1, 2, 3, 4]  ← unchanged

filter: pilih subset

Dibutuhkan predikat (fungsi yang mengembalikan nilai benar/salah). Itu hanya menyimpan elemen yang mana predikatnya benar.

JS
const numeri = [1, 2, 3, 4, 5, 6];

const pari = numeri.filter((n) => n % 2 === 0);
// [2, 4, 6]

const grandi = numeri.filter((n) => n > 3);
// [4, 5, 6]

Menggabungkan keduanya

Pipeline klasik: filter, lalu transformasi.

JS
const prezzi = [12, 5, 100, 30, 7];

const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]

Cobalah

Latihan#js.m6.l1.e1
Upaya: 0Memuat…

Definisikan `vat(prices, rate)`: dengan array angka dan tarif (misalnya 0,22), kembalikan array dengan harga yang dinaikkan sebesar PPN. Gunakan peta.

Memuat editor…
Tunjukkan petunjuk

harga.peta((p) => p * (1 + tarif))

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#js.m6.l1.e2
Upaya: 0Memuat…

Tentukan `Nama Dewasa(orang)`: Anda menerima array objek { nama, umur } dan mengembalikan array nama orang dengan usia >= 18. Gunakan filter + peta.

Memuat editor…
Tunjukkan petunjuk

Rantai: .filter(...).map((p) => p.name)

Solusi tersedia setelah 3 upaya