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

JavaScript로 숫자를 알파벳과 특수 문자로 변환하는 방법


문제 정의

문자열 형태의 숫자 배열을 입력받아 하나의 문자열을 반환하는 자바스크립트 함수를 작성해야 합니다. 각 숫자는 알파벳 소문자와 역순으로 대응되며, 그 규칙은 a=26, b=25, ..., z=1입니다.

또한 특수 문자도 함께 처리해야 합니다. 느낌표('!')는 27, 물음표('?')는 28, 공백(' ')은 29에 해당합니다.

예제 코드

const arr = ['5', '23', '2', '1', '13', '18', '6'];
const convertToString = (arr) => {
    let res = '';
    for (let char of arr) {
        if (Number(char) <= 26) {
            res += String.fromCharCode(123 - char);
        } else {
            if (char === '27') res += '!';
            else if (char === '28') res += '?';
            else res += ' ';
        }
    }
    return res;
};
console.log(convertToString(arr));

출력 결과

vdyzniu

코드 동작 원리

이 코드의 핵심은 String.fromCharCode() 메서드입니다. 아스키 코드 체계에서 소문자 'a'는 97, 'z'는 122에 해당합니다. 역순 매핑 규칙에 따라 숫자 n에 대응하는 문자는 123 - n이라는 아스키 코드 값을 가집니다.

  • n = 1 → 123 − 1 = 122 → 'z'
  • n = 26 → 123 − 26 = 97 → 'a'
  • n = 5 → 123 − 5 = 118 → 'v'

배열의 각 요소를 순회하면서 값이 26 이하이면 위 공식으로 알파벳 문자를 생성하고, 27 이상이면 조건문을 통해 각각 '!', '?', 공백으로 변환한 뒤 결과 문자열에 이어 붙입니다. 최종적으로 완성된 문자열을 반환하면 변환이 끝납니다.