Lompati ke konten utama
Modul 6 · Pelajaran 2 dari 422/32 dalam kursus~12 min
Pelajaran modul (2/4)

mengurangi

reduce adalah metode array fungsional yang paling kuat: metode ini menelusuri koleksi menyimpan akumulator yang diperbarui di setiap langkah. Ketika perulangan selesai, ia mengembalikan akumulator.

Tanda tangan

JS
arr.reduce((acc, elem) => nuovoAcc, valoreIniziale);
  • acc dimulai pada valoreIniziale.
  • Untuk setiap elemen, acc baru dihitung.
  • Hasil akhir adalah acc terakhir.

Contoh dasar: jumlah dan produk

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

const somma = numeri.reduce((a, n) => a + n, 0);
// 14

const prodotto = numeri.reduce((a, n) => a * n, 1);
// 60

Tanpa nilai awal, reduce dimulai dari elemen pertama (berisiko berpotensi kosong array → kesalahan). Selalu berikan nilai awal bila Anda bisa.

Membangun suatu objek: menghitung

JS
const parole = ['mela', 'pera', 'mela', 'kiwi', 'mela'];

const conteggio = parole.reduce((acc, p) => {
  acc[p] = (acc[p] ?? 0) + 1;
  return acc;
}, {});
// { mela: 3, pera: 1, kiwi: 1 }

Menemukan maks / mnt

JS
const nums = [3, 7, 1, 9, 4];

const max = nums.reduce((a, n) => (n > a ? n : a), -Infinity);
// 9

(Dalam praktiknya untuk maks/mnt, pilihlah Math.max(...nums); ini adalah contoh didaktik.)

Cobalah

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

Tentukan `total(item)`: Anda menerima array objek { harga, kuantitas } dan mengembalikan total pengeluaran (jumlah harga*kuantitas). Gunakan pengurangan.

Memuat editor…
Tunjukkan petunjuk

kurangi((a, itu) => a + itu.harga * itu.kuantitas, 0)

Solusi tersedia setelah 3 upaya

Tinjau latihan

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

Definisikan `count(words)`: jika diberi array string, kembalikan objek yang memetakan setiap string ke jumlah kemunculannya. Gunakan pengurangan dengan akumulator objek.

Memuat editor…
Tunjukkan petunjuk

acc[p] = (acc[p] ?? 0) + 1; kembali acc;

Solusi tersedia setelah 3 upaya