할 수 있는 최대한 단순한 코드를 만들고, 문제를 해결하는 다른 방법도 찾아보자
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
function solution(arr) {
var answer = 0;
return answer;
}
arr | return |
---|---|
[1,2,3,4] | 2.5 |
[5,5] | 5 |
function solution(arr) {
return arr.reduce((acc, cur) =>
acc + cur / arr.length, 0);
};
배열을 순회하며 누산하는 메소드 reduce를 사용한 솔루션
function average(array){
return array.reduce((a, b) => a + b) / array.length;
}
똑같이 reduce를 사용했지만 각 루프마다 current 값을 나누는 대신 reduce의 반환값을 나눴다. 따라서 initial value도 필요하지 않다. 루프 내부를 최대한 간결하게 만드는 것이 최적화에 좋아보인다.
function average(array){
var sum = 0;
for(var value of array){
sum += value;
}
return sum/array.length;
}
reduce 대신 for..of 메소드로 배열의 모든 값을 더한 후 평균을 구함