这是我目前拥有的代码。我在显示序数时遇到问题,因为我不确定要放入什么 for 循环。有人可以帮忙吗?
var bandsString = "";
var newBandString = "";
var bandsListArray = ["Linkin Park", "Atmosphere", "Rage Against The Machine", "Immortal Technique", "System of a Down"];
for (var i = 0; i < bandsListArray.length; i++) {
var currentBand = bandsListArray[i];
bandsString += "<li> My #" + [i + 1] + " band is " + currentBand + "</li>";
}
var bands = i;
if (bands == 0) {
bands = i + "st";;
} else if (bands == 1) {
bands = i + "nd";
} else if (bands == 2) {
bands = i + "rd";
} else if (bands == 3) {
bands = i + "th";
} else if (bands == 4) {
bands = i + "th";
} else {
}
for (var i = 0; i < bandsListArray.length; i++) {
var newBandList = bandsListArray[i];
newBandString += "<li>My # " + [i + 1] + " band is " + currentBand + "</li>";
}
document.write(bandsString);
document.write(newBandString);
最佳答案
我不确定您要做什么,但这有帮助吗?我没有手动计算如何在数字上放置正确的序数后缀(“st”、“nd”、“rd”等),而是 googled a function .
ordinal_suffix_of
函数的工作原理如下:
这第一部分是函数的开始。希望这是不言自明的。我们正在创建一个接受一个参数的函数,该参数将在函数内部命名为 i
。
function ordinal_suffix_of(i) {
下一部分定义了 j
和 k
。您可以声明多个变量,而只需使用逗号键入 var
一次,如以下代码所示:
var j = i % 10,
k = i % 100;
这会做同样的事情:
var j = i % 10;
var k = i % 100;
百分号 (%
) 称为“模数”,是一种数学运算符。它所做的是将左操作数除以右操作数并返回余数。所以在 j
的情况下,它被分配 i
除以 10
的余数。例如,如果 i
为 14
,则 j
将为 4
。如果 i
为 179
,则 j
将为 9
。 k
也会发生同样的事情,只是它除以 100
而不是 10
。
它有效地做的是提取最后 1 位数字(对于 j
)和最后 2 位数字(对于 k
)然后检查(在 if
语句)它们应该有什么序数后缀。
k
的原因是您总是希望以 1
、2
或 3
结尾的数字当数字以11
、12
或 13
,在这种情况下,它应该获得后缀 th
。因此,例如,112
应该是 112th
,而 313513
应该是 313513th
。 k
处理这个问题的方式是,如果数字以 11
、12
或 13
结尾,我们只添加第
。请注意,11 % 100
将导致 11
,因此这适用于 11
、12
和 13
也是如此。
var bandsString = "";
var newBandString = "";
var bandsListArray = ["Linkin Park", "Atmosphere", "Rage Against The Machine", "Immortal Technique", "System of a Down"];
for (var i = 0; i < bandsListArray.length; i++) {
var currentBand = bandsListArray[i];
bandsString += "<li> My #" + (i + 1) + " band is " + currentBand + "</li>";
}
for (var i = 0; i < bandsListArray.length; i++) {
var newBandList = bandsListArray[i];
newBandString += "<li>My " + ordinal_suffix_of(i + 1) + " band is " + newBandList + "</li>";
}
function ordinal_suffix_of(i) {
var j = i % 10,
k = i % 100;
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";
}
document.write(bandsString);
document.write(newBandString);
关于javascript - 我目前卡在如何显示这个数组上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44689308/