js实现查找到序数
查找序数的实现方法
在JavaScript中,查找序数(即第1、第2、第3等)可以通过多种方式实现。以下是几种常见的方法:
使用条件语句
通过条件判断返回对应的序数后缀:

function getOrdinalSuffix(num) {
const j = num % 10;
const k = num % 100;
if (j === 1 && k !== 11) return num + "st";
if (j === 2 && k !== 12) return num + "nd";
if (j === 3 && k !== 13) return num + "rd";
return num + "th";
}
使用数组映射
通过数组存储后缀,直接根据数字取对应的序数:

function getOrdinalSuffix(num) {
const suffixes = ["th", "st", "nd", "rd"];
const v = num % 100;
return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);
}
使用Intl.PluralRules
利用JavaScript的国际化API处理序数:
function getOrdinalSuffix(num) {
const pr = new Intl.PluralRules("en", { type: "ordinal" });
const suffixes = {
one: "st",
two: "nd",
few: "rd",
other: "th"
};
return num + suffixes[pr.select(num)];
}
处理负数和小数
如果需要处理负数或小数,可以扩展上述方法:
function getOrdinalSuffix(num) {
const absNum = Math.abs(num);
const j = absNum % 10;
const k = absNum % 100;
if (j === 1 && k !== 11) return num + "st";
if (j === 2 && k !== 12) return num + "nd";
if (j === 3 && k !== 13) return num + "rd";
return num + "th";
}
注意事项
- 序数通常用于正整数,但上述方法可以扩展支持负数和小数。
- 不同语言和地区的序数规则可能不同,需要根据实际需求调整。
- 国际化API(Intl.PluralRules)在某些旧浏览器中可能不支持。






