Method reduce
Termasuk bagian Logika dan Alur dalam perjalanan JavaScript di Coddy. Pelajaran 54 dari 65.
Method reduce() memungkinkan kamu "mereduksi" array menjadi satu nilai dengan menjalankan fungsi yang diberikan untuk setiap elemen array. Nilai tunggal ini bisa berupa angka, string, object, atau bahkan array lain.
Berikut sintaks reducer:
array.reduce(function(accumulator, currentValue, currentIndex, array) {
// kembalikan nilai accumulator yang sudah diperbarui
}, initialValue);Komponen Utama:
- akumulator: Mengumpulkan nilai yang dikembalikan callback (anggap sebagai total sementara)
- currentValue: Elemen saat ini yang sedang diproses dalam array
- currentIndex: (opsional) Indeks elemen saat ini
- array: (opsional) array yang dikenai pemanggilan reduce()
- initialValue: (opsional) Nilai yang digunakan sebagai argumen pertama pada pemanggilan pertama fungsi callback
Contoh: jumlah angka:
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // 15Cara Kerjanya Langkah demi Langkah:
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, curr) => {
console.log(`Accumulator: ${acc}, Current Value: ${curr}`);
return acc + curr;
}, 0);
// Output:
// Akumulator: 0, Nilai Saat Ini: 1
// Akumulator: 1, Nilai Saat Ini: 2
// Akumulator: 3, Nilai Saat Ini: 3
// Akumulator: 6, Nilai Saat Ini: 4
// Hasil akhir: 10Tantangan
MudahBuat fungsi bernama calculateGroceryTotal yang menerima array berisi object yang mewakili barang belanjaan.
Setiap object memiliki dua property:
name: string (nama barang)price: number (harga barang)
Fungsi tersebut harus:
- Menghitung total biaya semua barang
- Menerapkan diskon: - Jika total lebih dari 100, terapkan diskon 10%
- Jika total lebih dari 50 tetapi kurang dari atau sama dengan 100, terapkan diskon 5%
- Tidak ada diskon untuk total 50 atau kurang.
Mengembalikan object yang berisi:
originalTotal: jumlah sebelum diskondiscount: jumlah yang dihematfinalTotal: jumlah akhir setelah diskon
Coba sendiri
function calculateGroceryTotal(items) {
// Tulis kodemu di sini
return {
originalTotal: Math.round(originalTotal * 100) / 100, // Bulatkan ke 2 angka di belakang koma
discount: Math.round(discount * 100) / 100,
finalTotal: Math.round(finalTotal * 100) / 100
};
}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 array3JSON Bagian 1
Apa Itu JSON?Periksa Apakah Kunci AdaMethod objectOperator Spread Bagian 1Operator Spread Bagian 2Hapus KunciRangkuman: Memanipulasi Kunci JSON6set Bagian 2
Matematika, Gabungan setMatematika, Irisan setMatematika, Selisih setSelisih SimetrisSubset dan SupersetUlasan, Kelompokkan Teman9Method array tingkat lanjut
Method join & splitMethod mapMethod filterMethod reduceMerangkai method arrayApakah forEach dan map sama?Method sortMethod find & findIndexRangkuman: Ahli MerangkaiLatihan sendiri: Compiler JavaScript online