Javascript获取英文计数

时间:2016-05-09 06:29:35

标签: javascript algorithm count

我想要一个带数字并返回英文计数的函数,例如: 3返回第3个

我的工作解决方案:

function GetEnglishCount(number) {
    if ((number % 10 == 1) && (number % 100 != 11)) {
        return number + "st";
    }
    else if ((number % 10 == 2) && (number % 100 != 12)) {
        return number + "nd";
    }
    else if ((number % 10 == 3) && (number % 100 != 13)) {
        return number + "rd";
    }
    else {
        return number + "th";
    }
}

fiddle

有更优雅/准确的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以跳过else链接,因为return结束了该函数并删除了一些括号。

function GetEnglishCount(number) {
    if (number % 10 === 1 && number % 100 !== 11) {
        return number + "st";
    }
    if (number % 10 === 2 && number % 100 !== 12) {
        return number + "nd";
    }
    if (number % 10 === 3 && number % 100 !== 13) {
        return number + "rd";
    }
    return number + "th";
}

答案 1 :(得分:1)

这是写它的一种方式:

function GetEnglishCount(number) {
  if([11,12,13].indexOf(number%100)+1)
    return 'th'
  switch(number%10){
    case 1: return  'st'
    case 2: return 'nd'
    case 3: return 'rd'
  }
  return 'th'
}

Fiddle Demo