JavaScript Skikkings : Begrip van die vermindering van funksie

sintaksis

arr.reduce(callbackFunction, [initialValue])

Wat beteken verminder doen?

Verminder is 'n funksie wat deur 'n verskeidenheid lusse.

Bedrywighede uitgevoer kan word op die skikking via 'n terugbel funksie.

Aan die einde van die bedrywighede op die skikking, verminder opbrengste 'n enkele waarde

Verminder kan word, byvoorbeeld, om totaal 'n inkopie mandjie

voorbeeld

  Laat arr = [1,2,3,4,5];
  arr.reduce( (akkumulator, huidige waarde, currentIndex, verskeidenheid) => { 
      //sommige bedrywighede;
      iets terug te keer;
  });

 

Die terugbelfunksie

Die terugbel funksie is opgeroep vir elke element in die skikking, verby in 4 argumente wat geslaag in deur die vermindering van funksie.

hierdie 4 argumente dan gebruik kan word in ons terugbel funksie.

Neem vier argumente

  1. akkumulator – Die eerste element van die skikking op die eerste lus of aanvanklike waarde as voorsien. Toe die teruggekeer waarde van die vorige lus.
  2. huidige waarde – Die huidige element in die skikking. Begin van die tweede element in die skikking dws. arr[1], wanneer die aanvanklike waarde argument nie geslaag. As die aanvanklike waarde argument is verby dan huidige waarde begin van die 1ste element in die skikking arr[0].
  3. currentIndex – Die indeks van die huidige element.
  4. verskeidenheid – Die hele reeks.

Working Voorbeeld

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

arr.reduce(
  (akkumulator, huidige waarde, currentIndex, verskeidenheid) => {
    console.log(`akkumulator (Op 1 lus, akkumulator is arr[0], dan is dit die teruggekeer waarde van die vorige lus): ${akkumulator}`);
    console.log(`currentValue (Loops deur die skikking, begin by arr[1]): ${huidige waarde}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`n skikking: ${verskeidenheid}`);
    console.log('---');
    terugkeer akkumulator + huidige waarde;
  }
);

uitset

akkumulator (Op 1 lus, akkumulator is arr[0], dan is dit die teruggekeer waarde van die vorige lus): 1
huidige waarde (Loops deur die skikking, begin by arr[1]): 2
currentIndex: 1
verskeidenheid: 1,2,3,4,5
---
akkumulator (Op 1 lus, akkumulator is arr[0], dan is dit die teruggekeer waarde van die vorige lus): 3
huidige waarde (Loops deur die skikking, begin by arr[1]): 3
currentIndex: 2
verskeidenheid: 1,2,3,4,5
---
akkumulator (Op 1 lus, akkumulator is arr[0], dan is dit die teruggekeer waarde van die vorige lus): 6
huidige waarde (Loops deur die skikking, begin by arr[1]): 4
currentIndex: 3
verskeidenheid: 1,2,3,4,5
---
akkumulator (Op 1 lus, akkumulator is arr[0], dan is dit die teruggekeer waarde van die vorige lus): 10
huidige waarde (Loops deur die skikking, begin by arr[1]): 5
currentIndex: 4
verskeidenheid: 1,2,3,4,5
---

 

Die verskaffing van die aanvanklike waarde

Spesifiseer die tweede parameter (initialValue) in die vermindering van funksie sal veroorsaak initialValue geslaag moet word in die akkumulator argument op die eerste lus.

Let daarop dat die huidige waarde op die 1ste lus nou begin om die eerste element van die skikking

Working Voorbeeld

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

  arr.reduce(
  (akkumulator, huidige waarde, currentIndex, verskeidenheid) => {
    console.log(`akkumulator ( Op die 1ste lus, dit is die aanvanklike waarde, dan die teruggekeer waarde van die vorige lus): ${akkumulator}`);
    console.log(`currentValue (Loops deur die skikking, begin by arr[0]): ${huidige waarde}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`n skikking: ${verskeidenheid}`);
    console.log('---');
    terugkeer akkumulator + huidige waarde;
  }, 0
);

uitset

akkumulator ( Op die 1ste lus, dit is die aanvanklike waarde, dan die teruggekeer waarde van die vorige lus): 0
huidige waarde (Loops deur die skikking, begin by arr[0]): 1
currentIndex: 0
verskeidenheid: 1,2,3,4,5
---
akkumulator ( Op die 1ste lus, dit is die aanvanklike waarde, dan die teruggekeer waarde van die vorige lus): 1
huidige waarde (Loops deur die skikking, begin by arr[0]): 2
currentIndex: 1
verskeidenheid: 1,2,3,4,5
---
akkumulator ( Op die 1ste lus, dit is die aanvanklike waarde, dan die teruggekeer waarde van die vorige lus): 3
huidige waarde (Loops deur die skikking, begin by arr[0]): 3
currentIndex: 2
verskeidenheid: 1,2,3,4,5
---
akkumulator ( Op die 1ste lus, dit is die aanvanklike waarde, dan die teruggekeer waarde van die vorige lus): 6
huidige waarde (Loops deur die skikking, begin by arr[0]): 4
currentIndex: 3
verskeidenheid: 1,2,3,4,5
---
akkumulator ( Op die 1ste lus, dit is die aanvanklike waarde, dan die teruggekeer waarde van die vorige lus): 10
huidige waarde (Loops deur die skikking, begin by arr[0]): 5
currentIndex: 4
verskeidenheid: 1,2,3,4,5
---