javascript - 我目前卡在如何显示这个数组上

标签 javascript arrays

这是我目前拥有的代码。我在显示序数时遇到问题,因为我不确定要放入什么 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) {

下一部分定义了 jk。您可以声明多个变量,而只需使用逗号键入 var 一次,如以下代码所示:

var j = i % 10,
    k = i % 100;

这会做同样的事情:

var j = i % 10;
var k = i % 100;

百分号 (%) 称为“模数”,是一种数学运算符。它所做的是将左操作数除以右操作数并返回余数。所以在 j 的情况下,它被分配 i 除以 10 的余数。例如,如果 i14,则 j 将为 4。如果 i179,则 j 将为 9k 也会发生同样的事情,只是它除以 100 而不是 10

它有效地做的是提取最后 1 位数字(对于 j)和最后 2 位数字(对于 k)然后检查(在 if 语句)它们应该有什么序数后缀。

k 的原因是您总是希望以 123 结尾的数字当数字以111213,在这种情况下,它应该获得后缀 th。因此,例如,112 应该是 112th,而 313513 应该是 313513thk 处理这个问题的方式是,如果数字以 111213 结尾,我们只添加。请注意,11 % 100 将导致 11,因此这适用于 1112 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/

相关文章:

javascript - 没有返回有效的 JSON?

Javascript 表单验证 "z"&& ( "x"|| "y")

相当于 C fscanf 的 Java

arrays - 为什么我可以调用固定大小数组的最后一个方法,而该类型没有实现该函数?

Javascript 继承 - Ctor 参数和重写函数

javascript - NodeJS SyntaxError : Unexpected token . 我该如何修复?

javascript - JavaScript 'for' 循环中的执行顺序是什么?

javascript - 将每个数组的子元素组合成一个新的最终数组 - JavaScript

python - 在 for 循环中使用 zip 分配给 numpy 数组

python - 快速随机配对排列