快速提示:如何在JavaScript中把数字转换成序数
在本教程中,你将学习如何在JavaScript中把数字转换成序数。获取一个数字的序数可以让你以人类可读的格式来显示它。
什么是序数?
阶数将数字定义为某个顺序或序列的一部分。词 "第一"、"第二 "和 "第三 "都是序数的例子。当使用数字来显示图表结果、每月的天数或排名时,你经常需要使用序数。
数字可以用来显示许多不同类型的数据和结果。当数字呈现给用户时,它们往往需要以一种更易读的格式呈现--例如添加序数后缀(例如,"6月12日 "而不是 "6月12日")。
英语中的序数后缀规则
让我们来看看序数在英语中是如何使用的。英语中的序数遵循一套可预测的规则,即使不是非常简单:
-
1和比10的倍数大1的数字后加 "st",11和比100的倍数大11的数字除外。例如,第1、21、31等。...但第11、111等。
-
"nd "附加在2和大于10的倍数的数字上,除了12和大于100的倍数的12的数字。例如,第2,22,32,等等。...但第12位、第112位等。
-
"rd "附加在3和大于10的倍数的数字上,除了13和大于100的倍数的13的数字。例如,第3,第23,第33等。...但第13、113等。
-
"th "被附加在其他所有的东西上。例如,第24个。
如何获得一个数字的序数
要获得一个数字的序数,你可以使用以下函数:
function getOrdinal(n) {
let ord = 'th';
if (n % 10 == 1 && n % 100 != 11)
{
ord = 'st';
}
else if (n % 10 == 2 && n % 100 != 12)
{
ord = 'nd';
}
else if (n % 10 == 3 && n % 100 != 13)
{
ord = 'rd';
}
return ord;
}
该函数getOrdinal
,接受一个数字参数,并返回该数字的序数。由于大多数序数以 "th "结尾,ord
的默认值被设置为th
。然后,你在不同的条件下测试这个数字,如果有必要,可以改变序数。
你会注意到,在每个条件中都使用了余数(%)运算符。这个运算符返回左操作数除以右操作数的剩余值。例如,112 % 100
,返回12
。
要测试这个数字是否应该有序号st
,你要检查n
是否比10的倍数大1(n % 10 == 1
,包括1本身),但不是比100的倍数大11(n % 100 != 11
,包括11本身)。
要测试这个数字是否应该有序号nd
,你要检查n
是否是2大于10的倍数(n % 10 == 2
,其中包括2本身),但不是12大于100的倍数(n % 100 != 12
,其中包括12本身)。
要测试这个数字是否应该有序号rd
,你要检查n
是否大于10的倍数的3(n % 10 == 3
,其中包括3本身),但不是大于100的倍数的13(n % 100 != 13
,其中包括13本身)。
如果所有的条件都是假的,那么ord
的值仍然是th
。
。
总结
在本教程中,你已经学会了如何检索一个数字的序数。阶数可用于各种情况,如以人类可读的格式显示日期或排名。