JS 26. Map, Filter, Reduce

Map
: 배열 내 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환

array1 배열의 각 요소를 x로 받아 *2한 값을 모아 새로운 배열을 반환
구조
: arr.map(callback(currentValue[, index[, array]])[, thisArg])


callback 함수 내에 인덱스 길이 맞게 4번 돌아
item, index -> 1, 0 / 4, 1 / 9, 2 / 16, 3 이렇게 접근한다.
또한 접근 때마다 해당 배열도 같이 콘솔에 출력되는 구조이다.
마지막 각 item에 *2 값을 새로운 배열로 생성해서 반환한다.
this에 대해 a: 'a'를 정의한다.
Filter
: 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환

각 요소 중 문자열 길이가 6이상만 반환
구조
: arr.filter(callback(element[, index[, array]])[, thisArg])

구조는 map과 유사
return에서 조건이 들어가서 해당 요소들로 새로운 배열 생성해 반환
Reduce
: 배열의 각 요소에 대해 주어진 리듀서(reducer)함수를 실행 후 하나의 결괏값 반환
구조
arr.reduce(reducer 함수, initialValue])

accumulator : 누산기
currentValue : 현재 값
currentIndex : 현재 인덱스
array : 원본 배열

accumulator + currentValue는 accumulator에 저장되어 반환된다.
accumulator += currentValue 느낌이라고 보면 된다.