[JS] 배열의 합 구하기

2023. 5. 1. 08:42코딩테스트

1. 문제

function solution(arr) {
  let result = arr.reduce((a, b) => {
    return a + b;
  });
  return result / arr.length; 
}

console.log(solution([1, 2, 3, 4, 5]));

2. 해결 방법


reduce 함수를 사용해 배열의 각 요소의 합을 반환해서 그 값을 배열의 길이만큼 나누면 평균 값을 가져올 수 있다고 생각했다.

3. reduce 함수


reduce 함수를 활용해서 평균값을 구했다.
reduce 함수는 배열의 각 요소에 대해 주어진 reduce 함수를 실행하고 하나의 값을 반환한다.

const arr = [1, 2, 5, 7];

const sum = arr.reduce((a, b) => {
  return a + b;
}, 3);

console.log(sum);

//result = 18

매개변수는 사실 4개가 들어갈 수 있다

  • 첫번째 매개변수는 누적값이고
  • 두번째 매개변수는 처리할 현재 요소이다.
  • 세번째는 처리할 요소의 현재의 index 이다.
  • 네번째는 reduce함수를 처리 할 배열이 들어간다.

그리고 3 이라는 숫자는 initialValue라는 것인데 첫번째 매개변수를 대체할 수 있으며 사용하지 않으면 첫번째 매개변수가 그 역할을 대신 한다. 또한 빈 배열에서는 initialValue는 무조건 존재해야 한다.
위의 코드에서의 동작은 3(initialValue) + 1 + 2 + 5 + 7 = 18
만약에 장바구니 기능의 총 합을 구할 때 사용하면 유용할 거 같다.