我正在编写 InDesign 脚本并使用 moments.js 计算日期。
当我使用日期格式“Do”时,它应该返回例如“1st, 2nd, 3rd, 4th...”,但是函数执行的计算返回了错误的结果,结果是这样的:
第一名 第二名 第三名 第四名 5日 6日 7日 8号 9号 10号 11号 12号 13号 14日 15日 16日 17日 18日 19日 20日 21日 22日 23日 24日 25日 26日 27日 28日 29日 30号 31日
这是函数:
function returnOrdinal(number) {
var b = number % 10,
output = (parseInt(number % 100 / 10) === 1) ? 'th' :
(b === 1) ? 'st' :
(b === 2) ? 'nd' :
(b === 3) ? 'rd' : 'th';
return number + output;
}
我创建了一个 JSFiddle它使用相同的函数并返回正确的结果。
那么这是 Extendscript 中的一个已知问题吗?你知道任何其他返回序数的方法吗?任何解决方法?
提前致谢
最佳答案
看起来 ExtendScript 不支持链式三元运算符。据我所知,它是 ECMA 3。InDesign 中的另一个选项 - 只需使用 if else 或 switch
function returnOrdinal(number) {
var b = number % 10;
var output;
if (parseInt(number % 100 / 10) === 1) {
output = 'th';
} else {
switch (number) {
case 1:
output = 'st';
break;
case 2:
output = 'nd';
break;
case 3:
output = 'rd';
break;
default:
output = 'th';
}
}
return number + output;
}
关于javascript - Extendscript Javascript 计算结果错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39214578/