reduce( ) 함수는 앞서 살펴본 map과도 약간 유사한 형태를 띠는 함수입니다. 이 함수는 배열의 각 요소를 하나씩 꺼낸 다음 사용자가 정의한 함수를 적용시킨 후, 그 결과 값을 계속해서 누적하는 기능을 합니다.
Array.prototype.reduce = function(callback, memo) {
// this(obj)가 배열인지 확인 필요함
// callback이 함수인지 확인 필요함
var obj = this;
var value;
var accumulated_value = 0;
for(var i = 0; i < obj.length; i++) {
value = obj[i];
accumulated_value = callback.call(null, accumulated_value, value);
}
return accumulated_value;
};
var arr = [1, 2, 3];
var accumulated_result = arr.reduce(function(a, b) {
return a + b * b;
});
console.log(accumulated_result);
/* 출력
14
*/
'Programming > Javascript' 카테고리의 다른 글
15. Javascript 함수형 프로그래밍 적용(5) - map (0) | 2023.02.16 |
---|---|
15. Javascript 함수형 프로그래밍 적용(4) - each (0) | 2023.02.15 |
15. Javascript 함수형 프로그래밍 적용(3) - wrapper (0) | 2023.02.13 |
15. Javascript 함수형 프로그래밍 적용(2) - bind (0) | 2023.02.10 |
15. Javascript 함수형 프로그래밍 적용(1) - 필수 선행지식 + 커링(curry) 3 (0) | 2023.02.09 |