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

JavaScript로 중첩 배열의 각 하위 배열 평균값 구하기

숫자로 이루어진 배열의 배열(중첩 배열)을 입력받아, 각 하위 배열의 평균값을 계산한 뒤 새로운 배열에 해당 인덱스 순서대로 담아 반환하는 JavaScript 함수를 작성해 보겠습니다.

예를 들어 다음과 같은 배열이 있다고 가정해 봅시다.

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

동작 원리

이 문제는 두 단계로 나누어 해결할 수 있습니다.

1. 단일 배열의 평균 계산하기

reduce() 메서드를 사용하면 배열 요소들의 합계를 손쉽게 구할 수 있습니다. 합계를 배열의 길이로 나누면 평균값이 됩니다.

2. map()으로 전체 배열 순회하기

map() 메서드를 사용하면 외부 배열의 각 하위 배열에 평균 계산 함수를 적용하고, 그 결과를 새로운 배열로 만들 수 있습니다.

예제 코드

전체 코드는 다음과 같습니다.

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

// 단일 배열의 평균을 계산하는 함수
const average = (arr = []) => {
    const sum = arr.reduce((a, b) => a + b);
    return sum / arr.length;
}

// 각 하위 배열의 평균을 새 배열로 반환하는 함수
const averageWithin = (arr = []) => {
    const res = arr.map(el => average(el));
    return res;
};

console.log(averageWithin(arr));

실행 결과

콘솔에 출력되는 결과는 다음과 같습니다.

[ 1, 2.5, 5.5 ]

코드 설명

각 하위 배열의 평균은 다음과 같이 계산됩니다.

  • [1] → 1 ÷ 1 = 1
  • [2, 3] → (2 + 3) ÷ 2 = 2.5
  • [4, 5, 6, 7] → (4 + 5 + 6 + 7) ÷ 4 = 5.5

이처럼 reduce()map()을 조합하면 별도의 반복문 없이 간결하고 가독성 좋은 코드로 중첩 배열의 평균값을 구할 수 있습니다.