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

JavaScript로 숫자 배열을 알파벳 문자열로 변환하는 방법

문제

숫자 배열을 인수로 받아 네 부분으로 구성된 하나의 문자열을 반환하는 JavaScript 함수를 작성해야 합니다. 반환되는 문자열의 각 부분은 다음과 같습니다.

  • 배열의 첫 번째, 두 번째, 뒤에서 두 번째, 마지막 숫자에 해당하는 ASCII 문자로 이루어진 4글자 '단어'. 순서는 왼쪽에서 오른쪽으로 읽는 순서를 그대로 따릅니다.

  • 위와 동일하되, 배열을 오름차순으로 정렬한 후 적용한 결과

  • 위와 동일하되, 배열을 내림차순으로 정렬한 후 적용한 결과

  • 위와 동일하되, 배열을 ASCII 문자로 변환한 뒤 알파벳순으로 정렬하여 적용한 결과

이 네 부분은 하나의 문자열로 이어져야 하며, 각 부분은 하이픈(-)으로 구분합니다.

예시

다음은 구현 코드입니다.

const arr = [99, 98, 97, 96, 81, 82, 82];
const transform = (arr = []) => {
    let res = [];
    res.push(arr[0], arr[1], arr[arr.length-2], arr[arr.length-1]);
    res = res.map(x=>String.fromCharCode(x)).join('');
    const arr1 = arr
    .map(el => String.fromCharCode(el))
    .sort();
    const arr2 = (arr1.slice(0, 2) + ',' + arr1.slice(-2))
    .split(',')
    .join('');
    const arr3 = arr2
    .split('')
    .reverse()
    .join('');
    return `${res}-${arr2}-${arr3}-${arr2}`;
};
console.log(transform(arr));

출력

cbRR-QRbc-cbRQ-QRbc

위 코드에서 transform 함수는 먼저 원본 배열의 양 끝 두 숫자를 String.fromCharCode()로 문자로 변환해 첫 번째 부분을 만들고, 이후 정렬된 배열에서 같은 방식으로 나머지 부분을 생성해 하이픈으로 연결합니다.