js实现查找到序数
查找序数的方法
在JavaScript中,查找序数(ordinal numbers)通常涉及将数字转换为对应的序数形式,例如1变为"1st",2变为"2nd",3变为"3rd"等。以下是几种实现方式:

使用条件判断
function getOrdinal(num) {
const lastDigit = num % 10;
const lastTwoDigits = num % 100;
if (lastTwoDigits >= 11 && lastTwoDigits <= 13) {
return num + 'th';
}
switch (lastDigit) {
case 1: return num + 'st';
case 2: return num + 'nd';
case 3: return num + 'rd';
default: return num + 'th';
}
}
使用数组映射
function getOrdinal(num) {
const suffixes = ['th', 'st', 'nd', 'rd'];
const remainder = num % 100;
return num + (suffixes[(remainder - 20) % 10] || suffixes[remainder] || suffixes[0]);
}
使用Intl.PluralRules
现代JavaScript提供了Intl.PluralRulesAPI,可以更国际化地处理序数:

function getOrdinal(num) {
const pr = new Intl.PluralRules('en', { type: 'ordinal' });
const suffixMap = {
one: 'st',
two: 'nd',
few: 'rd',
other: 'th'
};
return num + suffixMap[pr.select(num)];
}
处理边界情况
对于非整数或负数的处理:
function getOrdinal(num) {
if (!Number.isInteger(num) || num < 0) return num.toString();
const lastDigit = num % 10;
const lastTwoDigits = num % 100;
if (lastTwoDigits >= 11 && lastTwoDigits <= 13) {
return num + 'th';
}
switch (lastDigit) {
case 1: return num + 'st';
case 2: return num + 'nd';
case 3: return num + 'rd';
default: return num + 'th';
}
}
这些方法都可以有效地将数字转换为序数形式,选择哪种方法取决于具体需求和运行环境。第一种方法简单直接,第二种方法更简洁,第三种方法则支持国际化。






