[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
만약에 장바구니 기능의 총 합을 구할 때 사용하면 유용할 거 같다.
'코딩테스트' 카테고리의 다른 글
[JS] 문자열 내 p와 y의 갯수 (0) | 2023.05.01 |
---|---|
[JS] 문자열 내림차순으로 배치하기 (0) | 2023.05.01 |
[JS] 서울에서 김서방 찾기 (0) | 2023.05.01 |
[JS] 자릿수 더하기 (0) | 2023.05.01 |
[JS] 자연수 뒤집어 배열로 만들기 (0) | 2023.05.01 |