var reduce = function(nums, fn, init) {
for(ele of nums) {
init = fn(init, ele)
}
return init;
};
문제의 요지는 reduce 메소드를 구현하라는 것이다.
reduce 메소드는 배열을 순회하면서 누적된 하나의 값을 리턴하는 메소드이다. 초기값을 부여할수도 아닐수도 있다. 이 문제에서는 초기값init
를 부여하였다.
for문을 통해 배열을 처음부터 순회한다.
이 때 함수fn
에init
과 현재 요소를 전달하여 그 리턴값을init
에 재할당한다.
그리고 재할당된init
은 다음 요소가 함수fn
에 전달되어 실행될때 같이 전달된다.
이런 식으로fn
의 실행결과를 배열 끝까지 누적해서 최종적인 하나의 값을 리턴하게된다.