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

JavaScript로 두 배열의 역방향 합 계산하기

문제 이해하기

같은 길이를 가진 숫자 배열 두 개를 인자로 받아, 첫 번째 배열의 앞에서부터 n번째 요소와 두 번째 배열의 뒤에서부터 n번째 요소를 더한 값으로 구성된 새로운 배열을 반환하는 JavaScript 함수를 작성해 보겠습니다.

예시

예를 들어 다음과 같은 두 개의 배열이 있다고 가정해 보겠습니다.

const arr1 = [34, 5, 3, 3, 1, 6];
const arr2 = [5, 67, 8, 2, 6, 4];

이 경우 기대되는 출력 결과는 다음과 같습니다.

const output = [38, 11, 5, 11, 68, 11];

실제 계산 과정을 살펴보면 다음과 같습니다.

  • 첫 번째 요소: 34 + 4 = 38
  • 두 번째 요소: 5 + 6 = 11
  • 세 번째 요소: 3 + 2 = 5
  • 네 번째 요소: 3 + 8 = 11
  • 다섯 번째 요소: 1 + 67 = 68
  • 여섯 번째 요소: 6 + 5 = 11

구현 코드

이를 구현한 전체 코드는 다음과 같습니다.

const arr1 = [34, 5, 3, 3, 1, 6];
const arr2 = [5, 67, 8, 2, 6, 4];
const reverseSum = (arr1, arr2) => {
    const res = [];
    for(let i = 0; i < arr1.length; i++){
        res[i] = (arr1[i]) + (arr2[arr2.length - i - 1] || 0);
    };
    return res;
};
console.log(reverseSum(arr1, arr2));

코드 설명

위 코드의 동작 원리를 단계별로 살펴보면 다음과 같습니다.

  • 결과값을 저장할 빈 배열 res를 먼저 선언합니다.
  • for 반복문을 사용하여 첫 번째 배열의 모든 요소를 순서대로 순회합니다.
  • 각 인덱스 i에서 arr1[i]arr2[arr2.length - i - 1], 즉 두 번째 배열의 끝에서부터 거꾸로 접근한 요소를 서로 더합니다.
  • || 0 연산자는 두 번째 배열이 첫 번째 배열보다 짧아 해당 인덱스가 존재하지 않을 때 undefined 대신 0으로 처리하여 오류를 방지해 줍니다.

출력 결과

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

[ 38, 11, 5, 11, 68, 11 ]