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
- aki – Elemen pertama dari array pada loop pertama atau nilai awal jika disediakan. Kemudian nilai yang dikembalikan dari loop sebelumnya.
- 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].
- currentIndex – Indeks dari elemen saat.
- 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 ---
