Menu
CoddyTech

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:

  1. akumulator: Mengumpulkan nilai yang dikembalikan callback (anggap sebagai total sementara)
  1. currentValue: Elemen saat ini yang sedang diproses dalam array
  1. currentIndex: (opsional) Indeks elemen saat ini
  1. array: (opsional) array yang dikenai pemanggilan reduce()
  1. 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); // 15

Cara 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: 10
challenge icon

Tantangan

Mudah

Buat 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:

  1. Menghitung total biaya semua barang
  2. Menerapkan diskon: - Jika total lebih dari 100, terapkan diskon 10%
  3. Jika total lebih dari 50 tetapi kurang dari atau sama dengan 100, terapkan diskon 5%
  4. Tidak ada diskon untuk total 50 atau kurang.

Mengembalikan object yang berisi:

  • originalTotal: jumlah sebelum diskon
  • discount: jumlah yang dihemat
  • finalTotal: 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
    };
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler JavaScript online