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

JavaScript로 각 하위 배열의 두 요소 간 차이를 계산하고 합계 반환하기

이번 글에서는 각 하위 배열이 정확히 두 개의 요소를 가지는 중첩 배열(nested array)을 입력으로 받아 처리하는 JavaScript 함수를 작성해 보겠습니다.

함수가 수행해야 할 작업은 다음과 같습니다. 먼저 각 하위 배열에서 첫 번째 요소와 두 번째 요소의 차이를 개별적으로 계산하고, 이렇게 구한 모든 차이 값들의 총합을 최종적으로 반환합니다.

예를 들어 입력 배열이 다음과 같다고 가정해 보겠습니다.

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

각 하위 배열의 차이를 계산하면 (5 − 3) + (9 − 4) + (3 − 7) + (4 − 6) = 2 + 5 − 4 − 2가 되므로, 최종 출력 결과는 1이어야 합니다.

예제 코드

이 문제를 해결하는 코드는 다음과 같습니다.

const arr = [
    [5, 3],
    [9, 4],
    [3, 7],
    [4, 6]
];
const subtractAndAdd = (arr = []) => {
    let res = 0;
    for(let i = 0; i < arr.length; i++){
        const [el1, el2] = arr[i];
        res += (el1 − el2);
    };
    return res;
};
console.log(subtractAndAdd(arr));

코드 설명

코드의 동작 방식을 단계별로 살펴보면 다음과 같습니다.

먼저 결과 값을 저장할 변수 res를 0으로 초기화합니다. 이후 반복문을 통해 배열의 각 하위 배열을 순회하면서, 구조 분해 할당(destructuring) 문법인 const [el1, el2] = arr[i]를 사용해 첫 번째 요소와 두 번째 요소를 각각 추출합니다. 그런 다음 두 요소의 차이(el1 − el2)를 매번 res에 더해 누적합니다. 모든 하위 배열에 대한 순회가 끝나면 누적된 총합을 반환합니다.

출력 결과

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

1