JavaScript Nizovi : Razumijevanje smanjiti funkciju

sintaksa

arr.reduce(callbackFunction, [initialValue])

Šta smanjuju uraditi?

Smanjite je funkcija koja petlje kroz niz.

Operacije se mogu izvršiti na niz preko funkciju povratnog poziva.

Na kraju operacije na niz, smanjiti vraća jednu vrijednost

Smanjiti se može koristiti, na primjer, na ukupno je košarica

primjer

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

 

Callback funkcija

Funkcija povratnog poziva se poziva za svaki element u nizu, prolazi 4 argumenti koji se donose u funkcijom smanjiti.

ovi 4 argumenata onda se može koristiti u našoj funkciji povratnog poziva.

Uzima četiri argumenta

  1. akumulator – Prvi element niza na prvom petlje ili početne vrijednosti ako postoji. Onda se vratio vrijednost prethodnog petlje.
  2. trenutna vrijednost – Trenutni element u nizu. Počinje od drugog elementa u matrici, odnosno. arr[1], kada nije prošao početne vrijednosti argumenta. Ako je početna vrijednost argument je prošlo onda trenutnu vrijednost kreće od 1. element u nizu arr[0].
  3. currentIndex – Indeks trenutnog elementa.
  4. mnoštvo – Cijeli niz.

Radna Primjer

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

arr.reduce(
  (akumulator, trenutna vrijednost, currentIndex, mnoštvo) => {
    console.log(`akumulator (1. petlje, akumulator je arr[0], onda je vraćena vrijednost prethodnog petlje): ${akumulator}`);
    console.log(`CurrentValue (Petlje kroz niz, sa početkom u arr[1]): ${trenutna vrijednost}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`niz: ${mnoštvo}`);
    console.log('---');
    povratak akumulator + trenutna vrijednost;
  }
);

izlaz

akumulator (1. petlje, akumulator je arr[0], onda je vraćena vrijednost prethodnog petlje): 1
trenutna vrijednost (Petlje kroz niz, sa početkom u arr[1]): 2
currentIndex: 1
mnoštvo: 1,2,3,4,5
---
akumulator (1. petlje, akumulator je arr[0], onda je vraćena vrijednost prethodnog petlje): 3
trenutna vrijednost (Petlje kroz niz, sa početkom u arr[1]): 3
currentIndex: 2
mnoštvo: 1,2,3,4,5
---
akumulator (1. petlje, akumulator je arr[0], onda je vraćena vrijednost prethodnog petlje): 6
trenutna vrijednost (Petlje kroz niz, sa početkom u arr[1]): 4
currentIndex: 3
mnoštvo: 1,2,3,4,5
---
akumulator (1. petlje, akumulator je arr[0], onda je vraćena vrijednost prethodnog petlje): 10
trenutna vrijednost (Petlje kroz niz, sa početkom u arr[1]): 5
currentIndex: 4
mnoštvo: 1,2,3,4,5
---

 

Pružanje početne vrijednosti

Navodeći drugi parametar (initialValue) u funkciji smanjiti će uzrokovati initialValue da bude usvojen u kao akumulator argument na prvom petlji.

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

Radna Primjer

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

  arr.reduce(
  (akumulator, trenutna vrijednost, currentIndex, mnoštvo) => {
    console.log(`akumulator ( Na 1. petlje, ovo je početna vrijednost, zatim se vratio vrijednost prethodnog petlje): ${akumulator}`);
    console.log(`CurrentValue (Petlje kroz niz, sa početkom u arr[0]): ${trenutna vrijednost}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`niz: ${mnoštvo}`);
    console.log('---');
    povratak akumulator + trenutna vrijednost;
  }, 0
);

izlaz

akumulator ( Na 1. petlje, ovo je početna vrijednost, zatim se vratio vrijednost prethodnog petlje): 0
trenutna vrijednost (Petlje kroz niz, sa početkom u arr[0]): 1
currentIndex: 0
mnoštvo: 1,2,3,4,5
---
akumulator ( Na 1. petlje, ovo je početna vrijednost, zatim se vratio vrijednost prethodnog petlje): 1
trenutna vrijednost (Petlje kroz niz, sa početkom u arr[0]): 2
currentIndex: 1
mnoštvo: 1,2,3,4,5
---
akumulator ( Na 1. petlje, ovo je početna vrijednost, zatim se vratio vrijednost prethodnog petlje): 3
trenutna vrijednost (Petlje kroz niz, sa početkom u arr[0]): 3
currentIndex: 2
mnoštvo: 1,2,3,4,5
---
akumulator ( Na 1. petlje, ovo je početna vrijednost, zatim se vratio vrijednost prethodnog petlje): 6
trenutna vrijednost (Petlje kroz niz, sa početkom u arr[0]): 4
currentIndex: 3
mnoštvo: 1,2,3,4,5
---
akumulator ( Na 1. petlje, ovo je početna vrijednost, zatim se vratio vrijednost prethodnog petlje): 10
trenutna vrijednost (Petlje kroz niz, sa početkom u arr[0]): 5
currentIndex: 4
mnoštvo: 1,2,3,4,5
---