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
- akumulator – Prvi element niza na prvom petlje ili početne vrijednosti ako postoji. Onda se vratio vrijednost prethodnog petlje.
- 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].
- currentIndex – Indeks trenutnog elementa.
- 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 ---
