[javascript] reduce

less than 1 minute read

reduce

map이 배열의 각 요소를 변형한다면 reduce는 배열 자체를 변형한다. reducemap이나 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"

Updated: