簡體   English   中英

在單獨的一行Javascript上打印數組的每個值

[英]Printing each value of an array on a separate line Javascript

我有一個涉及Javascript的程序,可以與網頁進行交互。 這是一個棒球網站,所以我在做的是提示用戶輸入一個月。 用戶可以輸入數字,例如6月的6,或月份本身的名稱,程序將顯示該月他們正在玩的所有游戲。

我這樣做的方法是創建一個數組並將其與游戲信息一起存儲。 因此,7月看起來像這樣:

if(month == 7)    // July
{
    var gamesPlayed = ["7/1/16: Team1 @ Team2", "7/3/16: Team2 @ Team 4",
                       "7/4/16: Team3 @ Team2" , ... ,etc, ...];
}

在我的主要功能(按下“提交”按鈕時執行的功能)中,我想打印數組。

var schedule = getSchedule(July);

for(var i = 0; i < schedule.length; i++)
{
    document.getElementById("result").innerHTML = schedule[i] + "<br />";
}

由於某些原因,這不起作用。 它所做的所有事情都會在數組中打印最后一個值,而不是整個內容。 為什么不打印整個陣列? 我試圖做document.write(schedule[i] + "<br />"); 那並沒有滿足我的要求。 它打印了它,但是它自己將它打印在頁面上,直到我無法在新的月時間或回到主頁等位置。是否有辦法使它打印所有元素,而不僅僅是最后一個一?

您可以使用.join()將數組合並為一個字符串,並用<br>分隔每個條目:

document.getElementById("result").innerHTML =
  schedule.join("<br>");

<br>不需要自動關閉/ 更重要的是,不需要for循環。 上面的代碼將完成全部操作。

如果要在最后一個條目之后輸入<br> ,只需添加它:

document.getElementById("result").innerHTML =
  schedule.join("<br>") + "<br>";

雖然Pointy的答案是正確的,但並未說明您的代碼為何無法正常工作。 我將嘗試解釋:

錯誤在於此for循環以及您如何使用innerHTML

for(var i = 0; i < schedule.length; i++)
{
    document.getElementById("result").innerHTML = schedule[i] + "<br />";
}

基本上,在循環的每次迭代中,您都將重置result元素的HTML而不是附加到它。 下面的小改動是您所需要的。

for(var i = 0; i < schedule.length; i++)
{
    document.getElementById("result").innerHTML += schedule[i] + "<br />";
}

但是,毫無疑問,Pointy的答案更為有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM