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

JavaScript로 소문자 알파벳 랜덤 문자열 생성 함수 만들기

이 글에서는 숫자 n을 입력받아, 영어 소문자 알파벳 26개(a~z)로만 구성된 길이 n짜리 랜덤 문자열을 반환하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.

구현 아이디어

핵심 원리는 간단합니다. 반복문 안에서 Math.random()으로 0부터 25 사이의 임의의 정수를 만들고, 아스키(ASCII) 코드를 활용해 해당 숫자를 알파벳 문자로 변환하는 것입니다. 알파벳 'a'의 아스키 코드는 97이므로, String.fromCharCode(97 + 임의의 수)를 사용하면 a부터 z까지의 문자를 손쉽게 얻을 수 있습니다.

예제 코드

다음은 이 기능을 구현한 전체 코드입니다.

const num = 8;
const randomNameGenerator = num => {
    let res = '';
    for(let i = 0; i < num; i++){
        const random = Math.floor(Math.random() * 26);
        res += String.fromCharCode(97 + random);
    };
    return res;
};
console.log(randomNameGenerator(num));

코드 동작 원리

  • Math.random(): 0 이상 1 미만의 실수 형태 난수를 반환합니다.
  • * 26: 난수의 범위를 0 이상 26 미만으로 확장해 알파벳 26개에 하나씩 대응시킵니다.
  • Math.floor(): 소수점 이하를 버려 0부터 25 사이의 정수를 만듭니다.
  • String.fromCharCode(97 + random): 아스키 코드 97('a')부터 122('z') 사이의 값에 해당하는 문자로 변환합니다.

이렇게 생성된 문자를 매 반복마다 누적 연산자(+=)로 이어 붙이면, 원하는 길이의 랜덤 문자열이 완성됩니다.

출력 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

kdcwping

참고: 위 결과는 가능한 여러 출력 중 하나일 뿐입니다. 난수를 기반으로 동작하기 때문에 실행할 때마다 콘솔에 출력되는 문자열은 항상 달라집니다.