자바스크립트 Iterator Method

(2021-04-19)

map(), filter(), reduce()

1. 배열 내 요소 마다 메소드를 반복 적용 (Iterator Method)

  ㅇ forEach(콜백함수) : 배열 내 각 요소를 순서대로 처리
     - 배열 내 각 요소 마다 지정된 콜백함수를 실행
        . 매개변수로 전달 받은 콜백함수를, 배열 내 각 요소 마다 각각 적용
     - 배열의 각 요소 값을 차례로 꺼내어, 콜백함수인수로 넘기기를 반복함
        . 콜백함수로의 전달 인수 셋은, 
           .. (현재 요소값 [, 현재 인덱스 번호 [, 배열명]])
           .. 例) (eachValue, index, arrayName)
     - 반환 상의 특징
        . 반환 값 없음
        . 콜백함수에서, 원본 배열 자체를 변경시킬 수 있음

  ㅇ map(콜백함수) : 배열 내 각 요소를 순서대로 처리후, 처리 결과를 새 배열로 반환
     - 위 forEach와 매우 유사
     - 형식 : array.map( (element [, index [, array]]) => { return element_processed; } );
        . 배열 array 내 각 요소별로 처리하되, 새로운 결과 배열을 반환
        . 例) array.map( x => 2 * x ); // 각 요소에 2의 배수를 한 배열을 반환
     - 반환 상의 특징
        . 새 배열을 출력하면서, 
        . 같은 크기(size,length)이지만,
        . 개별 요소 내용은 변경 가능

  ㅇ filter(콜백함수) : 배열 내 각 요소를 순서대로 처리후, 필터링된 새 배열 반환
     - 배열 요소들 중 필요한 것 만 걸러내고 남겨진 결과를, 새로운 배열로 반환
        . 例) array.filter( x => x % 2 ); // 각 요소들이 모두 홀수인 새 배열을 반환
     - 반환 상의 특징
        . 새 배열을 출력하면서, 
        . 그 크기(size,length)가 변동될 수 있지만, 
        . 필터링된 개별 요소 내용 및 형태는 그대로 임

  ㅇ reduce(콜백함수) : 배열 내 각 요소를 순서대로 처리 누적하며 하나의 값으로 줄임
     - 동작 방식
        . 배열 내 각 요소를 하나씩 꺼내, 사용자 함수(콜백함수)를 적용함
        . 이때, 콜백함수는 그 결과 값을 계속 누적하는 함수가 됨
        . 결국, 배열을 하나의 값으로 줄여줌
     - 형식 
        . array.reduce( 콜백함수, 기본값 );
        . array.reduce( (누적값, 현재값, 인덱스, 요소) => { return 결과; }, 초기값 );
           .. 여기서, 기본값(초기값)은, 콜백함수의 반환값을 담는 빈그릇 역할
     - 반환 상의 특징
        . 객체 또는 배열 또는 정수형 또는 논리형 등 어떤 자료형도 가능
        . 또한, 배열의 길이도 바뀜


[JS 배열/Map/Set] 1. JS 배열 2. JS 배열 메소드 3. Map 객체,Set 객체 4. ArrayBuffer 객체 5. 유사 배열 객체 6. Iterator Method

 
        최근수정     요약목록     참고문헌