Tablice JavaScript : Zrozumienie funkcji zmniejszyć
Składnia
arr.reduce(callbackFunction, [initialValue])
Co wpływa to zrobić?
Zmniejszenie to funkcja, która przechodzi poprzez tablicę.
Operacje mogą być przeprowadzone na szeregu za pośrednictwem funkcji zwrotną.
Pod koniec operacji na macierzy, zmniejszyć zwraca pojedynczą wartość
Zmniejszenia mogą być wykorzystane, na przykład, do całkowitej koszyk
Przykład
niech arr = [1,2,3,4,5];
arr.reduce( (akumulator, Aktualna wartość, currentIndex, szyk) => {
//Niektóre operacje;
coś powrotu;
});
Funkcja oddzwaniania
Funkcja zwrotna jest wywoływana dla każdego elementu macierzy, przekazując 4 Argumenty, które są przekazywane przez funkcję redukcji.
Te 4 Argumenty mogą być następnie wykorzystane w naszej funkcji zwrotnej.
Trwa cztery argumenty
- akumulator – Pierwszy element macierzy w pierwszej pętli i wartości początkowej, gdy dostarczany. Następnie powrócił wartość poprzedniej pętli.
- Aktualna wartość – Obecny element tablicy. Rozpoczyna się od drugiego elementu tablicy, tj. arr[1], gdy argument wartości początkowej nie jest przekazywany. Jeśli przekazano argument wartości początkowej, wartość bieżąca zaczyna się od pierwszego elementu tablicy arr[0].
- currentIndex – Indeks bieżącego elementu.
- szyk – Cały zestaw.
Przykład roboczy
niech arr = [1,2,3,4,5]; arr.reduce( (akumulator, Aktualna wartość, currentIndex, szyk) => { console.log(`akumulatorowe (Na pierwszej pętli, akumulator jest arr[0], wtedy jest to wartość zwrócona z poprzedniej pętli): ${akumulator}`); console.log(`CurrentValue (Pętle przez tablicę, od przylotu[1]): ${Aktualna wartość}`); console.log(`currentIndex: ${currentIndex}`); console.log(`array: ${szyk}`); console.log('---'); Akumulatory powrót + Aktualna wartość; } );
Wydajność
akumulator (Na pierwszej pętli, akumulator jest arr[0], wtedy jest to wartość zwrócona z poprzedniej pętli): 1 Aktualna wartość (Pętle przez tablicę, od przylotu[1]): 2 currentIndex: 1 szyk: 1,2,3,4,5 --- akumulator (Na pierwszej pętli, akumulator jest arr[0], wtedy jest to wartość zwrócona z poprzedniej pętli): 3 Aktualna wartość (Pętle przez tablicę, od przylotu[1]): 3 currentIndex: 2 szyk: 1,2,3,4,5 --- akumulator (Na pierwszej pętli, akumulator jest arr[0], wtedy jest to wartość zwrócona z poprzedniej pętli): 6 Aktualna wartość (Pętle przez tablicę, od przylotu[1]): 4 currentIndex: 3 szyk: 1,2,3,4,5 --- akumulator (Na pierwszej pętli, akumulator jest arr[0], wtedy jest to wartość zwrócona z poprzedniej pętli): 10 Aktualna wartość (Pętle przez tablicę, od przylotu[1]): 5 currentIndex: 4 szyk: 1,2,3,4,5 ---
Zapewnienie wartość początkową
Określanie drugi parametr (wartość początkowa) w funkcji redukuj spowoduje przekazanie wartości initialValue jako argumentu akumulatora w pierwszej pętli.
Zwróć uwagę, że bieżąca wartość w pierwszej pętli zaczyna się teraz od pierwszego elementu tablicy
Przykład roboczy
niech arr = [1,2,3,4,5]; arr.reduce( (akumulator, Aktualna wartość, currentIndex, szyk) => { console.log(`akumulatorowe ( Na pierwszej pętli, to jest wartość początkowa, następnie zwrócona wartość poprzedniej pętli): ${akumulator}`); console.log(`CurrentValue (Pętle przez tablicę, od przylotu[0]): ${Aktualna wartość}`); console.log(`currentIndex: ${currentIndex}`); console.log(`array: ${szyk}`); console.log('---'); Akumulatory powrót + Aktualna wartość; }, 0 );
Wydajność
akumulator ( Na pierwszej pętli, to jest wartość początkowa, następnie zwrócona wartość poprzedniej pętli): 0 Aktualna wartość (Pętle przez tablicę, od przylotu[0]): 1 currentIndex: 0 szyk: 1,2,3,4,5 --- akumulator ( Na pierwszej pętli, to jest wartość początkowa, następnie zwrócona wartość poprzedniej pętli): 1 Aktualna wartość (Pętle przez tablicę, od przylotu[0]): 2 currentIndex: 1 szyk: 1,2,3,4,5 --- akumulator ( Na pierwszej pętli, to jest wartość początkowa, następnie zwrócona wartość poprzedniej pętli): 3 Aktualna wartość (Pętle przez tablicę, od przylotu[0]): 3 currentIndex: 2 szyk: 1,2,3,4,5 --- akumulator ( Na pierwszej pętli, to jest wartość początkowa, następnie zwrócona wartość poprzedniej pętli): 6 Aktualna wartość (Pętle przez tablicę, od przylotu[0]): 4 currentIndex: 3 szyk: 1,2,3,4,5 --- akumulator ( Na pierwszej pętli, to jest wartość początkowa, następnie zwrócona wartość poprzedniej pętli): 10 Aktualna wartość (Pętle przez tablicę, od przylotu[0]): 5 currentIndex: 4 szyk: 1,2,3,4,5 ---
