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

JavaScript에서 숫자를 반전된 자릿수 배열로 변환하는 방법

음이 아닌 정수가 하나 주어졌을 때, 해당 숫자의 각 자릿수를 독립적인 요소로 분리한 뒤 역순으로 담은 배열을 반환하는 함수를 작성해야 하는 문제입니다.

예시

입력값과 기대되는 출력 결과는 다음과 같습니다.

348597 => 올바른 결과는 [7, 9, 5, 8, 4, 3] 입니다.

해결 코드

const num = 348597;
const reverseArrify = num => {
    const numArr = String(num).split('');
    const reversed = [];
    for(let i = numArr.length - 1; i >= 0; i--){
        reversed[i] = +numArr.shift();
    };
    return reversed;
};
console.log(reverseArrify(num));

실행 결과

[ 7, 9, 5, 8, 4, 3 ]

코드 동작 원리

이 함수가 어떻게 작동하는지 단계별로 살펴보겠습니다.

  1. 문자열 변환: String(num)을 통해 숫자를 문자열로 변환한 후, split('')으로 한 글자씩 분리하여 문자 배열을 만듭니다. 예를 들어 348597은 ['3', '4', '8', '5', '9', '7']이 됩니다.
  2. 역순 채우기: for 반복문을 배열의 마지막 인덱스부터 시작하여 거꾸로 순회합니다. 각 반복마다 shift() 메서드로 배열의 첫 번째 요소를 제거하면서 꺼내고, 단항 더하기 연산자(+)를 사용해 문자를 숫자로 변환한 뒤 현재 인덱스에 저장합니다.
  3. 결과 반환: 반복이 끝나면 원래 숫자의 자릿수가 역순으로 배치된 배열이 완성됩니다.

이처럼 문자열과 배열 메서드를 조합하면 별도의 수학적 연산 없이도 간단하게 숫자를 뒤집힌 자릿수 배열로 변환할 수 있습니다.