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

JavaScript로 배열의 각 요소를 해당 인덱스만큼 거듭제곱하여 변환하는 방법

문제 개요

이번 글에서는 JavaScript 함수를 작성해 보겠습니다. 이 함수는 숫자로 이루어진 배열을 하나 입력받고, 배열의 각 요소를 해당 요소의 0 기반 인덱스만큼 거듭제곱한 값으로 변환한 새로운 배열을 만들어야 합니다.

예를 들어 인덱스 0에 있는 요소는 0제곱(항상 1), 인덱스 1에 있는 요소는 1제곱(자기 자신), 인덱스 2에 있는 요소는 2제곱이 되는 방식입니다. 최종적으로 이렇게 변환된 새 배열을 반환하면 됩니다.

해결 코드

다음은 위 문제를 해결하는 JavaScript 코드입니다.

const arr = [5, 2, 3, 7, 6, 2];
const findNthPower = (arr = []) => {
   const res = [];
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      const curr = Math.pow(el, i);
      res[i] = curr;
   };
   return res;
};
console.log(findNthPower(arr));

코드 동작 원리

코드의 핵심 로직은 다음과 같습니다.

  • findNthPower: 화살표 함수 형태로 정의되며, 매개변수에 기본값 []을 지정해 빈 배열이 전달되어도 오류가 발생하지 않도록 했습니다.
  • for 반복문: 인덱스 i를 0부터 배열 길이까지 순회하면서 각 요소에 접근합니다.
  • Math.pow(el, i): 현재 요소 el을 인덱스 i만큼 거듭제곱합니다. 참고로 ES2016 이상 환경이라면 지수 연산자 el ** i를 사용해도 같은 결과를 얻을 수 있습니다.
  • res[i] = curr: 계산된 값을 결과 배열의 같은 위치에 저장합니다.

실행 결과

위 코드를 실행하면 다음과 같은 출력을 확인할 수 있습니다.

[ 1, 2, 9, 343, 1296, 32 ]

결과를 살펴보면 첫 번째 요소 5는 0제곱으로 인해 1이 되었고, 두 번째 요소 2는 1제곱으로 그대로 2가 유지되었습니다. 세 번째 요소 3은 3² = 9, 네 번째 요소 7은 7³ = 343, 다섯 번째 요소 6은 6⁴ = 1296, 마지막 요소 2는 2⁵ = 32로 각각 변환된 것을 볼 수 있습니다.