자바 스크립트 배열 : 기능을 줄이려면 이해
통사론
arr.reduce(callbackFunction, [initialValue])
무엇을 줄일 않습니다?
축소 배열을 루핑 함수.
동작들은 콜백 함수를 통해 상기 어레이에서 수행 될 수있다.
어레이 동작이 종료, 반환에게 하나의 값을 감소
사용할 수 감소, 예를 들면, 쇼핑 카트를 총하기
예
편곡 =하자 [1,2,3,4,5];
arr.reduce( (축 압기, CurrentValue에, currentIndex, 정렬) => {
//일부 작업;
뭔가를 반환;
});
콜백 함수
콜백 함수는 상기 어레이의 각 요소에 대한 호출, 전달 4 줄이거 기능에 의해 전달되는 인수.
이들 4 인수는 우리의 콜백 기능을 사용할 수 있습니다.
네 개의 인수를 취
- 축 압기 – 공급하면 제 1 루프 또는 초기 값의 어레이의 첫 번째 요소. 이전 루프의 다음 반환 값.
- CurrentValue에 – 배열의 현재 요소. 즉, 어레이의 두 번째 요소에서 시작. 도착[1], 초기 값 인수가 전달되지 않은 경우. 초기 값 인수 전달되는 경우 전류 값은 도착 어레이의 첫번째 엘리먼트로부터 시작[0].
- currentIndex – 현재 요소의 인덱스.
- 정렬 – 전체 배열.
작업 예
편곡 =하자 [1,2,3,4,5]; arr.reduce( (축 압기, CurrentValue에, currentIndex, 정렬) => { CONSOLE.LOG(`어큐뮬레이터 (첫번째 루프에, 누산기이다 도착[0], 다음은 이전 루프의 반환 값은): ${축 압기}`); CONSOLE.LOG(`CurrentValue에 (배열을 루핑, 편곡에서 시작[1]): ${CurrentValue에}`); CONSOLE.LOG(`currentIndex: ${currentIndex}`); CONSOLE.LOG(`배열: ${정렬}`); CONSOLE.LOG('---'); 반환 어큐뮬레이터 + CurrentValue에; } );
산출
축 압기 (첫번째 루프에, 누산기이다 도착[0], 다음은 이전 루프의 반환 값은): 1 CurrentValue에 (배열을 루핑, 편곡에서 시작[1]): 2 currentIndex: 1 정렬: 1,2,3,4,5 --- 축 압기 (첫번째 루프에, 누산기이다 도착[0], 다음은 이전 루프의 반환 값은): 3 CurrentValue에 (배열을 루핑, 편곡에서 시작[1]): 3 currentIndex: 2 정렬: 1,2,3,4,5 --- 축 압기 (첫번째 루프에, 누산기이다 도착[0], 다음은 이전 루프의 반환 값은): 6 CurrentValue에 (배열을 루핑, 편곡에서 시작[1]): 4 currentIndex: 3 정렬: 1,2,3,4,5 --- 축 압기 (첫번째 루프에, 누산기이다 도착[0], 다음은 이전 루프의 반환 값은): 10 CurrentValue에 (배열을 루핑, 편곡에서 시작[1]): 5 currentIndex: 4 정렬: 1,2,3,4,5 ---
초기 값을 제공
두번째 매개 변수를 지정 (초기 값) 줄이거 함수로 초기에 첫 번째 루프 누산기 인수로서 전달되도록 할 것이다.
1 루프의 현재 값이 현재 어레이의 첫 번째 요소에서 시작하여 유의
작업 예
편곡 =하자 [1,2,3,4,5]; arr.reduce( (축 압기, CurrentValue에, currentIndex, 정렬) => { CONSOLE.LOG(`어큐뮬레이터 ( 1 루프에, 이것은 초기 값, 이전 루프의 다음 반환 값): ${축 압기}`); CONSOLE.LOG(`CurrentValue에 (배열을 루핑, 편곡에서 시작[0]): ${CurrentValue에}`); CONSOLE.LOG(`currentIndex: ${currentIndex}`); CONSOLE.LOG(`배열: ${정렬}`); CONSOLE.LOG('---'); 반환 어큐뮬레이터 + CurrentValue에; }, 0 );
산출
축 압기 ( 1 루프에, 이것은 초기 값, 이전 루프의 다음 반환 값): 0 CurrentValue에 (배열을 루핑, 편곡에서 시작[0]): 1 currentIndex: 0 정렬: 1,2,3,4,5 --- 축 압기 ( 1 루프에, 이것은 초기 값, 이전 루프의 다음 반환 값): 1 CurrentValue에 (배열을 루핑, 편곡에서 시작[0]): 2 currentIndex: 1 정렬: 1,2,3,4,5 --- 축 압기 ( 1 루프에, 이것은 초기 값, 이전 루프의 다음 반환 값): 3 CurrentValue에 (배열을 루핑, 편곡에서 시작[0]): 3 currentIndex: 2 정렬: 1,2,3,4,5 --- 축 압기 ( 1 루프에, 이것은 초기 값, 이전 루프의 다음 반환 값): 6 CurrentValue에 (배열을 루핑, 편곡에서 시작[0]): 4 currentIndex: 3 정렬: 1,2,3,4,5 --- 축 압기 ( 1 루프에, 이것은 초기 값, 이전 루프의 다음 반환 값): 10 CurrentValue에 (배열을 루핑, 편곡에서 시작[0]): 5 currentIndex: 4 정렬: 1,2,3,4,5 ---
