Javascript获取英语计数

Javascript获取英语计数,javascript,algorithm,count,Javascript,Algorithm,Count,我想要一个函数,它接受一个数字并返回一个英文计数,例如: 第三名返回第三名 我的工作解决方案: function GetEnglishCount(number) { if ((number % 10 == 1) && (number % 100 != 11)) { return number + "st"; } else if ((number % 10 == 2) && (number % 100 != 12)) {

我想要一个函数,它接受一个数字并返回一个英文计数,例如: 第三名返回第三名

我的工作解决方案:

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";
    }
}


有没有更优雅/准确的方法来实现这一点?

您可以跳过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";
}

这是写它的一种方式:

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'
}

另请参见此代码的具体问题是什么?你称之为有效的解决方案,但你仍然要求一个更准确的解决方案。有一个解决方案可以回答你的问题吗?