Array JavaScript : Memahami mengurangi fungsi

Sintaksis

arr.reduce(callbackFunction, [initialValue])

Apa mengurangi lakukan?

Mengurangi adalah fungsi yang loop melalui array.

Operasi dapat dilakukan pada array melalui fungsi callback.

Pada akhir operasi pada array, mengurangi pengembalian nilai tunggal

Mengurangi dapat digunakan, sebagai contoh, terhadap total keranjang belanja

Contoh

  biarkan arr = [1,2,3,4,5];
  arr.reduce( (aki, nilai sekarang, currentIndex, susunan) => { 
      //beberapa operasi;
      kembali sesuatu;
  });

 

The Callback Function

Fungsi callback dipanggil untuk setiap elemen dalam array, melintas di 4 argumen yang disahkan oleh fungsi mengurangi.

Ini 4 argumen kemudian dapat digunakan dalam fungsi callback kami.

Membawa empat argumen

  1. aki – Elemen pertama dari array pada loop pertama atau nilai awal jika disediakan. Kemudian nilai yang dikembalikan dari loop sebelumnya.
  2. nilai sekarang – Elemen saat dalam array. Mulai dari elemen kedua dalam array yaitu. arr[1], ketika nilai argumen awal tidak lulus. Jika nilai awal argumen dilewatkan nilai kemudian saat dimulai dari elemen 1 di arr array yang[0].
  3. currentIndex – Indeks dari elemen saat.
  4. susunan – Seluruh array.

Contoh Kerja

biarkan arr = [1,2,3,4,5];

arr.reduce(
  (aki, nilai sekarang, currentIndex, susunan) => {
    console.log(`akumulator (Pada loop 1, akumulator adalah arr[0], maka itu adalah nilai yang dikembalikan dari loop sebelumnya): ${aki}`);
    console.log(`CurrentValue (Loop melalui array, mulai arr[1]): ${nilai sekarang}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`Array: ${susunan}`);
    console.log('---');
    kembali akumulator + nilai sekarang;
  }
);

Keluaran

aki (Pada loop 1, akumulator adalah arr[0], maka itu adalah nilai yang dikembalikan dari loop sebelumnya): 1
nilai sekarang (Loop melalui array, mulai arr[1]): 2
currentIndex: 1
susunan: 1,2,3,4,5
---
aki (Pada loop 1, akumulator adalah arr[0], maka itu adalah nilai yang dikembalikan dari loop sebelumnya): 3
nilai sekarang (Loop melalui array, mulai arr[1]): 3
currentIndex: 2
susunan: 1,2,3,4,5
---
aki (Pada loop 1, akumulator adalah arr[0], maka itu adalah nilai yang dikembalikan dari loop sebelumnya): 6
nilai sekarang (Loop melalui array, mulai arr[1]): 4
currentIndex: 3
susunan: 1,2,3,4,5
---
aki (Pada loop 1, akumulator adalah arr[0], maka itu adalah nilai yang dikembalikan dari loop sebelumnya): 10
nilai sekarang (Loop melalui array, mulai arr[1]): 5
currentIndex: 4
susunan: 1,2,3,4,5
---

 

Memberikan nilai awal

Menentukan parameter kedua (InitialValue) dalam fungsi mengurangi akan menyebabkan InitialValue akan disahkan sebagai argumen akumulator pada loop pertama.

Perhatikan bahwa nilai saat ini pada loop 1 sekarang dimulai pada elemen pertama dari array

Contoh Kerja

  biarkan arr = [1,2,3,4,5];

  arr.reduce(
  (aki, nilai sekarang, currentIndex, susunan) => {
    console.log(`akumulator ( Pada loop 1, ini adalah nilai awal, maka nilai yang dikembalikan dari loop sebelumnya): ${aki}`);
    console.log(`CurrentValue (Loop melalui array, mulai arr[0]): ${nilai sekarang}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`Array: ${susunan}`);
    console.log('---');
    kembali akumulator + nilai sekarang;
  }, 0
);

Keluaran

aki ( Pada loop 1, ini adalah nilai awal, maka nilai yang dikembalikan dari loop sebelumnya): 0
nilai sekarang (Loop melalui array, mulai arr[0]): 1
currentIndex: 0
susunan: 1,2,3,4,5
---
aki ( Pada loop 1, ini adalah nilai awal, maka nilai yang dikembalikan dari loop sebelumnya): 1
nilai sekarang (Loop melalui array, mulai arr[0]): 2
currentIndex: 1
susunan: 1,2,3,4,5
---
aki ( Pada loop 1, ini adalah nilai awal, maka nilai yang dikembalikan dari loop sebelumnya): 3
nilai sekarang (Loop melalui array, mulai arr[0]): 3
currentIndex: 2
susunan: 1,2,3,4,5
---
aki ( Pada loop 1, ini adalah nilai awal, maka nilai yang dikembalikan dari loop sebelumnya): 6
nilai sekarang (Loop melalui array, mulai arr[0]): 4
currentIndex: 3
susunan: 1,2,3,4,5
---
aki ( Pada loop 1, ini adalah nilai awal, maka nilai yang dikembalikan dari loop sebelumnya): 10
nilai sekarang (Loop melalui array, mulai arr[0]): 5
currentIndex: 4
susunan: 1,2,3,4,5
---