[javascript] reduce
reduce
map
이 배열의 각 요소를 변형한다면 reduce
는 배열 자체를 변형한다. reduce
는 map
이나 reduce
와 마찬가지로 콜백 함수를 받는다. 그런데 여태까지의 콜백에서 첫 번째 매개변수는 항상 현재 배열 요소였지만, reduce
는 다르다. reduce
가 받는 첫 번째 매개변수는 배열이 줄어드는 대상인 어큐뮬레이터(accumulator)이다.
const arr = [5, 7, 2, 4];
const sum = arr.reduce((a,x) => a += x, 0); // sum = 18
// 초기값 설정을 하지 않아도 배열의 첫 번째 요소가 그대로 초깃값이 될 수 있을 때는 생략 가능
const sum = arr.reduce((a,x) => a += x); // sum = 18
또 다른 예제
const words = [ "brainstorm", "size", "musical",
"decrease", "restless", "sail",
"expectation", "large", "refrigerator"];
const longWords = words.reduce((a,x) => x.length > 6 ? a +" "+ x : a, " ");
// "brainstorm musical decrease restless expectation refrigerator"