來自PHP背景,我現在正在學習JS,我不明白為什么這段代碼不起作用:
let i = 0;
let arr = [];
while(i < 8){
arr[i] = i;
i ;
}
for(i = 0; arr[i]; i ) {
console.log("Result:", arr[i]);
}
在我看來,這段代碼是合乎邏輯的:
- 我宣告我所有的變數
- 我在陣列中放了一些隨機值(只是為了填充它)
- 我想在條件為真時對陣列的每個元素進行 console.log
我知道在 while 回圈之后i等于8,但是即使在 for 之前的“ i=0 ”也不能解決問題(順便說一句,為什么 for 初始化中的 i = 0 沒有將其設定為 0?)
有人能解釋一下是什么破壞了代碼嗎?
uj5u.com熱心網友回復:
for 回圈運行直到條件不為真。
圍繞回圈中的第一次i是0這樣arr[i]的arr[0],你已經填充了0。
0 是一個假值,所以條件為假并且回圈在第一次迭代之前結束。
您可能希望條件為i < arr.length。
uj5u.com熱心網友回復:
在您的第一眼中,您設定了arr[i] = i. 在第二個回圈中,您的條件是arr[i],并且在第一次迭代中i = 0,這意味著arr[i]0 其計算結果為 false 導致您的回圈退出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/388139.html
標籤:javascript 数组 for循环
