我通过.onclick将数据传递到数组中,然后通过for循环运行它以附加名称。我需要输出特定的格式,即。 1. John, 2. Paul, 3. George, 4. Ringo
。我的斗争是在最后一个元素上没有显示逗号。已经解释过我应该使用if语句来检查JavaScript何时查看数组中的最后一个元素然后不以某种方式显示逗号?
很抱歉,如果这个问题措辞糟糕或缺乏数据,这是我在stackoverflow上的第一篇文章,我对编程很新。任何和所有的帮助/建议表示赞赏。
var showList = function()
{
HYUTS = "";
for (var i=0; i < BeatlesArray.length; i++) {
HYUTS += i + 1 + ". " + BeatlesArray[i] + " ";
}
$("list").innerHTML = HYUTS;
}
为什么我没有添加我的.js的这一部分的原因是因为我知道它不正确而且没有产生我想要的东西。
答案 0 :(得分:2)
一个选项:始终添加逗号,而不是选择附加逗号。
var Beatles = ["John", "Paul", "George", "Ringo"],
HYUTS = '1. ' + Beatles[0]
for (var i = 1; i < Beatles.length; i++)
HYUTS += ', ' + (i+1) + '. ' + Beatles[i]
console.log(HYUTS)
输出:
1. John, 2. Paul, 3. George, 4. Ringo
答案 1 :(得分:1)
让我们看看你在这里写的for循环:
for (var i=0; i < BeatlesArray.length; i++) {
HYUTS += i + 1 + ". " + BeatlesArray[i] + " ";
}
似乎你想在每次循环一个新的Beatles乐队成员时连接这行之后的逗号,但是如果你当前正在连接乐队中的最后一个Beatle,那就不是。
所以,添加一个if语句来检查那个条件,只有当它不为真时才添加逗号:
for (var i=0; i < BeatlesArray.length; i++) {
HYUTS += i + 1 + ". " + BeatlesArray[i];
if (i < (BeatlesArray.length - 1)) {
HYUTS += ", ";
}
}
当i等于数组的长度(因为数组为零索引而减去1)时,您已到达最后一个元素。因此,通过检查i是否比最后一个元素少,您知道这是将逗号附加到正在构建的String的正确时间。
答案 2 :(得分:0)
虽然作为一般做法,我更喜欢@Julian Fondren的答案,因为它避免在循环中有条件(因此具有更好的性能),因为你想使用if
语句,代码你正在寻找的东西如下:
var showList = function()
{
HYUTS = "";
for (var i=0; i < BeatlesArray.length; i++) {
HYUTS += i + 1 + ". " + BeatlesArray[i] + " ";
if (i < (BeatlesArray.length-1))
HYUTS+=', ';
}
$("list").innerHTML = HYUTS;
}