자바 스크립트 배열 : 기능을 줄이려면 이해

통사론

arr.reduce(callbackFunction, [initialValue])

무엇을 줄일 않습니다?

축소 배열을 루핑 함수.

동작들은 콜백 함수를 통해 상기 어레이에서 수행 될 수있다.

어레이 동작이 종료, 반환에게 하나의 값을 감소

사용할 수 감소, 예를 들면, 쇼핑 카트를 총하기

예

  편곡 =하자 [1,2,3,4,5];
  arr.reduce( (축 압기, CurrentValue에, currentIndex, 정렬) => { 
      //일부 작업;
      뭔가를 반환;
  });

 

콜백 함수

콜백 함수는 상기 어레이의 각 요소에 대한 호출, 전달 4 줄이거 기능에 의해 전달되는 인수.

이들 4 인수는 우리의 콜백 기능을 사용할 수 있습니다.

네 개의 인수를 취

  1. 축 압기 – 공급하면 제 1 루프 또는 초기 값의 어레이의 첫 번째 요소. 이전 루프의 다음 반환 값.
  2. CurrentValue에 – 배열의 현재 요소. 즉, 어레이의 두 번째 요소에서 시작. 도착[1], 초기 값 인수가 전달되지 않은 경우. 초기 값 인수 전달되는 경우 전류 값은 도착 어레이의 첫번째 엘리먼트로부터 시작[0].
  3. currentIndex – 현재 요소의 인덱스.
  4. 정렬 – 전체 배열.

작업 예

편곡 =하자 [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
---