Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 배열에서 n개 요소씩 묶은 그룹의 평균 구하기

문제 소개

이번 글에서는 숫자 배열을 첫 번째 인수로, 그룹의 크기를 나타내는 숫자 n을 두 번째 인수로 받는 JavaScript 함수를 작성해 보겠습니다. 이 함수는 배열을 n개의 요소씩 묶어 각 그룹의 평균값을 계산한 뒤, 그 결과들을 새로운 배열로 반환해야 합니다.

예를 들어 입력이 다음과 같다면 −

const arr = [1, 2, 3, 4, 5, 6];
const n = 2;

배열을 2개씩 묶으면 [1, 2], [3, 4], [5, 6] 세 개의 그룹이 만들어지므로, 출력은 다음과 같아야 합니다 −

const output = [1.5, 3.5, 5.5];

해결 접근 방식

구현 방법은 간단합니다. 바깥쪽 반복문으로 배열을 순회하면서, 안쪽 반복문으로 n개의 요소를 차례대로 더해 합계를 구합니다. 그런 다음 합계를 n으로 나눈 값을 결과 배열에 push하면 됩니다. 이 과정을 배열의 끝까지 반복하면 모든 그룹의 평균을 구할 수 있습니다.

만약 마지막 그룹에서 요소가 부족하면 해당 위치의 값은 0으로 처리되어 계산에 포함됩니다.

예제 코드

const arr = [1, 2, 3, 4, 5, 6];
const n = 2;

const groupAverage = (arr = [], n = 1) => {
    const res = [];
    for (let i = 0; i < arr.length;) {
        let sum = 0;
        for(let j = 0; j< n; j++){
            sum += +arr[i++] || 0;
        };
        res.push(sum / n);
    }
    return res
}

console.log(groupAverage(arr, n))
console.log(groupAverage(arr, 3))

실행 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다 −

[ 1.5, 3.5, 5.5 ]
[ 2, 5 ]

n이 2일 때는 [1, 2], [3, 4], [5, 6] 그룹의 평균인 1.5, 3.5, 5.5가 반환되고, n이 3일 때는 [1, 2, 3], [4, 5, 6] 그룹의 평균인 2와 5가 반환되는 것을 확인할 수 있습니다.