🙌문제설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
☑️나의 풀이
for문에 배열로 돌리면 풀리지만, 분명 메서드 함수가 있을 것 같다고 생각했다!
function solution(arr) {
return arr.reduce((sum, cur)=>sum+cur)/arr.length;
}
☑️배운 점
reduce 메서드
배열의 내장함수(메서드) 중 하나로 누적값을 계산하는데 사용한다.
배열 형태를 순회하면서 단 하나에 값(합, 차, 곱 등)을 반환하는 일이 필요할때 리듀스를 사용한다. 배열의 누적 합 구할때
const arr = [1,2,3,4,5];
const initVal = 0;
const average = arr.reduce((acc, cur) => {
return acc + cur;
}, initVal)
average/5 //15/5 = 0+1+2+3+4+5/5 = 3
- acc(prev) : 누적값
- cur : 현재값
- 내부 콜백함수 안에서는 꼭 리턴값 (return)이 필요하다.
- initVal : 리듀서가 실행될때 초기 acc 값으로 설정되는 원시값. 생략해도 동작함.
#참고
reduce 메서드 동작방법을 이해하는데에 도움이 되었다.👍