function numberToOrdinal(i) {
var j = i % 10,
k = i % 100;
if (j == 0 && k == 100) {
return '0th';
}
if (j == 1 && k != 11) {
return i + "st";
}
if (j == 2 && k != 12) {
return i + "nd";
}
if (j == 3 && k != 13) {
return i + "rd";
}
return i + "th";
}
没有通过这项测试,怎么了?
应处理个位数 预期“ 0th”等于“ 0”
答案 0 :(得分:0)
您可以更改这些行
if (j == 0 && k == 100) {
return '0th';
}
成为
if (i == 0) {
return i
}
答案 1 :(得分:0)
如果希望函数在将0传递给函数时返回0,则需要输入一个条件来处理它,例如:
if (i === 0) {
return 0;
}
答案 2 :(得分:0)
如果您要提供未知输入,则要检查给定的输入是否为零。否则可能会引发devisionbyzero异常。
function numberToOrdinal(i) {
if(i === 0){ // since we devide i we wanna check if it might be zero.
return i ;
}
var j = i % 10,
k = i % 100;
//if (j == 0 && k == 100) { didnt seem to be doing anything
//return '0th';
//}
if (j == 1 && k != 11) {
return i + "st";
}
if (j == 2 && k != 12) {
return i + "nd";
}
if (j == 3 && k != 13) {
return i + "rd";
}
return i + "th";
}
console.log(numberToOrdinal(0));
答案 3 :(得分:0)
您必须输入其他条件才能处理
function numberToOrdinal(i) {
var j = i % 10,
k = i % 100;
if (i === 0) {
return i;
}
if (j == 1 && k != 11) {
return `${i}st`;
}
if (j == 2 && k != 12) {
return `${i}nd`;
}
if (j == 3 && k != 13) {
return `${i}rd`;
}
return `${i}th`;
}