JavaScript Nizovi : Razumijevanje smanjiti funkciju

Sintaksa

arr.reduce(callbackFunction, [initialValue])

Što smanjuju učiniti?

Smanjenje je funkcija koja petlje kroz niz.

Operacija može biti izvedena na polju preko funkcije povratnog poziva.

Na kraju operacija na nizu, smanjiti vraća jednu vrijednost

Smanjiti mogu se koristiti, na primjer, u odnosu na ukupnu košaricu

Primjer

  neka arr = [1,2,3,4,5];
  arr.reduce( (akumulator, Trenutna vrijednost, currentIndex, red) => { 
      //neke operacije;
      povratak nešto;
  });

 

Povratni poziv funkcije

Funkcija povratnog poziva se poziva za svaki element u polju, prolaze 4 argumenti koji se šalju u strane smanji funkcije.

To 4 argumenti tada se može koristiti u našem callback funkciju.

Uzeti četiri argumenta

  1. akumulator – Prvi element na prvom nizu petlje ili početne vrijednosti ako dovodi. Tada je vratio vrijednosti prethodnog petlje.
  2. Trenutna vrijednost – Sadašnji element u nizu. Počinje od drugog elementa u nizu, tj. ARR[1], kada je početna vrijednost argument nije prošao. Ako je početna vrijednost argument prošao onda trenutna vrijednost kreće od 1. elementa u nizu ARR[0].
  3. currentIndex – Indeks trenutnog elementa.
  4. red – Čitav niz.

radni primjer

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

arr.reduce(
  (akumulator, Trenutna vrijednost, currentIndex, red) => {
    console.log(`akumulator (Na 1. petlje, Akumulator je arr[0], onda je vratio vrijednost prethodnog petlje): ${akumulator}`);
    console.log(`currentValue (Petlje kroz niz, počevši ARR[1]): ${Trenutna vrijednost}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`niz: ${red}`);
    console.log('---');
    povratak akumulator + Trenutna vrijednost;
  }
);

Izlaz

akumulator (Na 1. petlje, Akumulator je arr[0], onda je vratio vrijednost prethodnog petlje): 1
Trenutna vrijednost (Petlje kroz niz, počevši ARR[1]): 2
currentIndex: 1
red: 1,2,3,4,5
---
akumulator (Na 1. petlje, Akumulator je arr[0], onda je vratio vrijednost prethodnog petlje): 3
Trenutna vrijednost (Petlje kroz niz, počevši ARR[1]): 3
currentIndex: 2
red: 1,2,3,4,5
---
akumulator (Na 1. petlje, Akumulator je arr[0], onda je vratio vrijednost prethodnog petlje): 6
Trenutna vrijednost (Petlje kroz niz, počevši ARR[1]): 4
currentIndex: 3
red: 1,2,3,4,5
---
akumulator (Na 1. petlje, Akumulator je arr[0], onda je vratio vrijednost prethodnog petlje): 10
Trenutna vrijednost (Petlje kroz niz, počevši ARR[1]): 5
currentIndex: 4
red: 1,2,3,4,5
---

 

Pod uvjetom da je početne vrijednosti

Određivanje drugi parametar (initialValue) u smanji funkcija uzrokovat će initialValue biti donesen u akumulator argument na prvom petlje.

Imajte na umu da je trenutna vrijednost na 1. petlji sada počinje na prvi element polja

radni primjer

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

  arr.reduce(
  (akumulator, Trenutna vrijednost, currentIndex, red) => {
    console.log(`akumulator ( Na 1. petlje, to je početna vrijednost, tada se vraća vrijednost prethodnog petlje): ${akumulator}`);
    console.log(`currentValue (Petlje kroz niz, počevši ARR[0]): ${Trenutna vrijednost}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`niz: ${red}`);
    console.log('---');
    povratak akumulator + Trenutna vrijednost;
  }, 0
);

Izlaz

akumulator ( Na 1. petlje, to je početna vrijednost, tada se vraća vrijednost prethodnog petlje): 0
Trenutna vrijednost (Petlje kroz niz, počevši ARR[0]): 1
currentIndex: 0
red: 1,2,3,4,5
---
akumulator ( Na 1. petlje, to je početna vrijednost, tada se vraća vrijednost prethodnog petlje): 1
Trenutna vrijednost (Petlje kroz niz, počevši ARR[0]): 2
currentIndex: 1
red: 1,2,3,4,5
---
akumulator ( Na 1. petlje, to je početna vrijednost, tada se vraća vrijednost prethodnog petlje): 3
Trenutna vrijednost (Petlje kroz niz, počevši ARR[0]): 3
currentIndex: 2
red: 1,2,3,4,5
---
akumulator ( Na 1. petlje, to je početna vrijednost, tada se vraća vrijednost prethodnog petlje): 6
Trenutna vrijednost (Petlje kroz niz, počevši ARR[0]): 4
currentIndex: 3
red: 1,2,3,4,5
---
akumulator ( Na 1. petlje, to je početna vrijednost, tada se vraća vrijednost prethodnog petlje): 10
Trenutna vrijednost (Petlje kroz niz, počevši ARR[0]): 5
currentIndex: 4
red: 1,2,3,4,5
---                                                                 

Ostavi odgovor