reduce 란?
reduce()메소드는 array의 각 element에 함수를 적용하여 array를 단일값으로 reduce 하는데 사용된다.
let result = arr.reduce(callback);
let result = arr.reduce(callback, initValue); // option for initial value
result : return 되는 단일 값
arr : reduce함수가 실행되는 array
calllback : array안에 있는 각 element들에 실행되는 함수 (네가지 arguments)
- accumulator : 함수의 모든 리턴값을 축적
- cur : 진행되는 현재 값
- index : 현재 진행하는 값의 index
- arr : 원래의 array
initValue : 선택적으로 사용가능. 설정되지 않으면 0번째 element가 initValue
Reduce vs For Loop
var arr = [1,2,3,4];
var sum = 0;
for(var i = 0; i < arr.length; i++){
sum += arr[i];
}
// sum =10
위의 코드는 array의 모든 값의 합을 찾는것이다.
우리의 array를 통해 반복하며 각각의 변수의 값을 한번씩 더한다.
끝나게 되면 sum은 10의 값을 갖는다.
reduce() 함수로 훨씬 쉽게 이 함수를 실행할 수 있다.
let arr = [1,2,3,4];
let sum = arr.reduce((acc, cur) => {
return acc + val;
});
// sum = 10;
각 반복에서 현재 값을 acc에 더하고 리턴한다. 이 리턴값이 새로운 accumulator가 될것이다.
reduce 함수가 arr 배열에 작용하고, acc 값이 함수가 끝날때까지 증가할 것이다.
Initial Value 지정하기
let arr = [1,2,3,4];
let sum = arr.reduce((acc, cur) => {
return acc + cur;
}, 100);
// sum = 110;
이전 코드와 initValue를 빼고는 동일하다. 시작점을 100으로 설정했기에 값은 110이 된다.
Reduce & ES6
let sum = arr.reduce((acc, cur) => acc + cur, 100);
function 대신 =>
'return' 생략
'코드스테이츠(Pre)' 카테고리의 다른 글
Recursion 이해하기(Javascript) 번역 및 요약 (0) | 2019.04.29 |
---|---|
JavaScript Reduce 자세히 알아보기 (0) | 2019.04.12 |
array 반복을 효과적으로 하기 위한 9가지 방법 (0) | 2019.04.11 |
filter function 이해하기 (0) | 2019.04.10 |
점표기법(Dot notation) vs 괄호표기법(Bracket Notation) (0) | 2019.03.30 |