【发布时间】:2012-01-17 05:10:16
【问题描述】:
我有一个数组。该数组responses[1] 中的一个值是一个整数。这个整数可以从 1 到你想要的任何数字。我需要获取整数中的最后一个数字,并根据该数字确定是否应该以“st”、“nd”、“rd”或“th”结尾。我怎么做?我试过了:
var placeEnding;
var placeInt = response[1]; //101
var stringInt = placeInt.toString();
var lastInt = stringInt.charAt(stringInt.length-1);
if (lastInt == '1'){
placeEnding = 'st';
} else if (lastInt == '2'){
placeEnding = 'nd';
} else if (lastInt == '3'){
placeEnding = 'rd';
} else {
placeEnding = 'th';
}
但这没有用。每次我尝试打印placeEnding 时,它总是'th',无论它应该是'st'、'rd'还是'nd'。当我尝试打印placeInt、stringInt 或lastInt 时,它们都打印为" 而不是数字。为什么会这样?当我稍后在脚本中打印responses[1] 时,我得到正确答案没有问题。
【问题讨论】:
-
响应[1] 或响应[1]..?
-
@Sudhir 哇!谢谢。这正是问题所在。响应[1]。
-
请注意,您的代码与下面的大多数答案一样,会将数字 11、12 和 13 转换为“11st”、“12nd”和“13rd”。要正确处理这些情况,您还需要检查倒数第二个数字是否不是 1。(另外,我无法抗拒链接到 this related codegolf.SE challenge,这是在这个问题之后几天发布的.)
标签: javascript parsing integer