코딩테스트/JavaScript

[JS] Lv.1 평균 구하기

닿다라다나닷 2023. 12. 22. 15:01

🙌문제설명

정수를 담고 있는 배열 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 메서드 동작방법을 이해하는데에 도움이 되었다.👍

 

[JS] 리듀서 파헤치기 about Reducer

filter, map, forEach 같은 메서드는 사용방법도 꽤나 간단하고 직관적으로 이해가 쉬운데, 그에 반해 Reducer는 콜백 부분이나 동작이 이해가 잘 안되어 블로그 글을 남긴다. 리듀서(reducer)는 배열의 내

velog.io