JavaScript massiivid : Mõistmise vähendada funktsiooni

süntaks

arr.reduce(callbackFunction, [initialValue])

Mis vähendavad teha?

Vähendada on funktsioon, mis ring läbi massiivi.

Toiminguid saab teostada massiivi kaudu tagasihelistamise funktsioon.

Lõpus toimingute kohta massiivi, vähendada tagastab ühe väärtuse

Vähendada saab kasutada, näiteks, et kokku ostukorv

näide

  lase arr = [1,2,3,4,5];
  arr.reduce( (aku, currentValue, currentIndex, massiivi) => { 
      //mõned toimingud;
      tagasi midagi;
  });

 

Tagasihelistamisfunktsiooni

Tagasihelistamise funktsioon on tugineda iga element massiivi, läbides 4 argumendid, mis on vastu võetud poolt vähendada funktsiooni.

Need 4 argumendid siis saab kasutada meie tagasihelistamise funktsioon.

Nelja argumenti

  1. aku – Esimene element massiivi esimese silmuse või algne väärtus, kui tarnitud. Siis tagasi väärtus eelmise silmuse.
  2. currentValue – Praegune element massiivi. Algab teisest element massiivi st. arr[1], kui algne väärtus argument ei edastata. Kui algne väärtus argument on möödas siis praegune väärtus algab 1. element massiivi arr[0].
  3. currentIndex – Indeks praeguse element.
  4. massiivi – Kogu massiivi.

Töö Näide

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

arr.reduce(
  (aku, currentValue, currentIndex, massiivi) => {
    console.log(`akumulaator (On 1. silmuse, akul on arr[0], siis on tagastatud väärtus eelmise silmuse): ${aku}`);
    console.log(`currentValue (Loops läbi massiivi, algusega kell arr[1]): ${currentValue}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`massiivi: ${massiivi}`);
    console.log('---');
    tagastamise akumulaator + currentValue;
  }
);

väljund

aku (On 1. silmuse, akul on arr[0], siis on tagastatud väärtus eelmise silmuse): 1
currentValue (Loops läbi massiivi, algusega kell arr[1]): 2
currentIndex: 1
massiivi: 1,2,3,4,5
---
aku (On 1. silmuse, akul on arr[0], siis on tagastatud väärtus eelmise silmuse): 3
currentValue (Loops läbi massiivi, algusega kell arr[1]): 3
currentIndex: 2
massiivi: 1,2,3,4,5
---
aku (On 1. silmuse, akul on arr[0], siis on tagastatud väärtus eelmise silmuse): 6
currentValue (Loops läbi massiivi, algusega kell arr[1]): 4
currentIndex: 3
massiivi: 1,2,3,4,5
---
aku (On 1. silmuse, akul on arr[0], siis on tagastatud väärtus eelmise silmuse): 10
currentValue (Loops läbi massiivi, algusega kell arr[1]): 5
currentIndex: 4
massiivi: 1,2,3,4,5
---

 

Hoolitseda algväärtus

Täpsustades teine ​​parameeter (Algne väärtus) Euroopa vähendamiseks funktsioon põhjustada initialValue tuleb edasi nii aku argument esimesel loop.

Pange tähele, et praegune väärtus 1. silmus nüüd algab esimene element massiivi

Töö Näide

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

  arr.reduce(
  (aku, currentValue, currentIndex, massiivi) => {
    console.log(`akumulaator ( Alates 1. silmuse, see on algne väärtus, siis tagastatakse väärtus eelmise silmuse): ${aku}`);
    console.log(`currentValue (Loops läbi massiivi, algusega kell arr[0]): ${currentValue}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`massiivi: ${massiivi}`);
    console.log('---');
    tagastamise akumulaator + currentValue;
  }, 0
);

väljund

aku ( Alates 1. silmuse, see on algne väärtus, siis tagastatakse väärtus eelmise silmuse): 0
currentValue (Loops läbi massiivi, algusega kell arr[0]): 1
currentIndex: 0
massiivi: 1,2,3,4,5
---
aku ( Alates 1. silmuse, see on algne väärtus, siis tagastatakse väärtus eelmise silmuse): 1
currentValue (Loops läbi massiivi, algusega kell arr[0]): 2
currentIndex: 1
massiivi: 1,2,3,4,5
---
aku ( Alates 1. silmuse, see on algne väärtus, siis tagastatakse väärtus eelmise silmuse): 3
currentValue (Loops läbi massiivi, algusega kell arr[0]): 3
currentIndex: 2
massiivi: 1,2,3,4,5
---
aku ( Alates 1. silmuse, see on algne väärtus, siis tagastatakse väärtus eelmise silmuse): 6
currentValue (Loops läbi massiivi, algusega kell arr[0]): 4
currentIndex: 3
massiivi: 1,2,3,4,5
---
aku ( Alates 1. silmuse, see on algne väärtus, siis tagastatakse väärtus eelmise silmuse): 10
currentValue (Loops läbi massiivi, algusega kell arr[0]): 5
currentIndex: 4
massiivi: 1,2,3,4,5
---