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

JavaScript로 숫자를 영어 서수(Ordinal Number)로 변환하기

이번 글에서는 숫자를 입력받아 해당 숫자에 대응하는 영어 서수(ordinal number)를 문자열로 반환하는 JavaScript 함수를 작성해 보겠습니다.

예시

3 → 3rd

영어 서수 접미사 규칙

영어 서수는 다음과 같은 규칙에 따라 접미사가 결정됩니다.

  • 일의 자리가 1이고, 마지막 두 자리가 11이 아닌 경우 → "st" (예: 1st, 21st)
  • 일의 자리가 2이고, 마지막 두 자리가 12가 아닌 경우 → "nd" (예: 2nd, 22nd)
  • 일의 자리가 3이고, 마지막 두 자리가 13이 아닌 경우 → "rd" (예: 3rd, 23rd)
  • 그 외의 모든 숫자 → "th" (예: 4th, 11th, 111th)

구현 코드

위 규칙을 구현한 코드는 다음과 같습니다.

const num = 3;
const englishCount = num => {
    if (num % 10 === 1 && num % 100 !== 11){
        return num + "st";
    };
    if (num % 10 === 2 && num % 100 !== 12) {
        return num + "nd";
    };
    if (num % 10 === 3 && num % 100 !== 13) {
        return num + "rd";
    };
    return num + "th";
};
console.log(englishCount(num));
console.log(englishCount(111));
console.log(englishCount(65));
console.log(englishCount(767));

실행 결과

콘솔 출력 결과는 다음과 같습니다.

3rd
111th
65th
767th

핵심은 %(나머지) 연산자입니다. num % 10으로 일의 자리를, num % 100으로 마지막 두 자리를 확인하여 11, 12, 13처럼 예외적으로 "th"를 붙여야 하는 숫자까지 정확하게 처리할 수 있습니다.