我是 JavaScript 新手,可能問了一個愚蠢的問題.. 但是從下面的代碼回傳的結果讓我很困惑。我不確定為什么只有第一句話顯示 i 的值并且它在 3 的最后一個數字中。
我在document.write('<h1>' i msg '<h1>')執行代碼時也很困惑,為什么它不只寫變數'msg'的聚合值?msg 的值沒有被清除,它應該包含傳遞給它的第一個和第二個值,不是嗎?這對我來說有點困惑,因為我掌握了一些 Python 知識,但它并沒有以同樣的方式作業。
var scores = [24, 32, 47];
var scores = [24, 32, 47];
var scores = [24, 32, 47];
var arrayLength = scores.length;
var roundNumber = 0;
var msg = '';
var i;
for (i = 0; i < arrayLength; i ) {
roundNumber = i 1;
msg = ' Round ' roundNumber ': ';
msg = scores[i] '<br>';
}
document.write('<h1>' i msg '<h1>')
從 html 回傳的結果:
3 Round 1: 24
Round 2: 32
Round 3: 47
我的預期結果:
0 Round 1: 24
1 Round 2: 32
2 Round 3: 47
uj5u.com熱心網友回復:
您只需要將 i 添加到回圈中的訊息而不是之后,例如:
var scores = [24, 32, 47];
var arrayLength = scores.length;
var roundNumber = 0;
var msg = '';
var i;
for (i = 0; i < arrayLength; i ) {
roundNumber = i 1;
msg = i ' Round ' roundNumber ': ';
msg = scores[i] '<br>';
}
document.write('<h1>' msg '<h1>')
uj5u.com熱心網友回復:
你i只輸出一次。這就是為什么您只看到最后一個值的原因。
您需要將其添加到msg回圈內部。
var scores = [24, 32, 47];
var scores = [24, 32, 47];
var scores = [24, 32, 47];
var arrayLength = scores.length;
var roundNumber = 0;
var msg = '';
var i;
for (i = 0; i < arrayLength; i ) {
roundNumber = i 1;
msg = i ' Round ' roundNumber ': ';
msg = scores[i] '<br>';
}
document.write('<h1>' msg '<h1>')
uj5u.com熱心網友回復:
document.write 在回圈結束后運行。
它確實輸出msg. 那不是問題。
出錯的地方是使用i- 在回圈結束后,您只能在輸出中使用它一次。因此,您看到的將只有回圈結束時的最終值,因此它顯示3,并且只顯示一次。
不像msg其中添加每次回圈運行(因為 =追加新的內容,以現有的變數)的值i是覆寫新值,每次回圈運行(這是什么i 在for語法一樣)。
為了讓它做你想做的事,你只需要在你前進的程序中將i價值融入其中msg。
var scores = [24, 32, 47];
var msg = '';
for (let i = 0; i < scores.length; i ) {
msg = i ' Round ' (i 1) ': ' scores[i] '<br>';
}
document.write('<h1>' msg '<h1>')
PS我還簡化了代碼略-目前還不清楚為什么你宣告的一樣scores具有相同值陣列3倍,arrayLength并且roundNumber不需要存在作為獨立變數,當然不是那些具有外回圈范圍。i也不再需要回圈外的范圍。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/318014.html
標籤:javascript dom 文件写入
