[英]JavaScript loop doesn't work (learning JS)
來自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]); }
從我的角度來看,這段代碼是邏輯:
我知道在 while 循環之后i等於8 ,但是即使在 for 之前的“ i=0 ”也不能解決問題(順便說一句,為什么 for 初始化中的 i = 0 沒有將其設置為 0?)
有人可以解釋一下是什么破壞了代碼嗎?
for
循環一直運行,直到條件不成立。
第一次圍繞循環i
是0
所以arr[i]
是arr[0]
你已經填充了0
。
0
是假值,因此條件為假,循環在第一次迭代之前結束。
您可能希望條件為i < arr.length
。
在您的第一眼中,您設置了arr[i] = i
。 在第二個循環中,您的條件是arr[i]
,並且在第一次迭代中i = 0
,這意味着arr[i]
為 0 ,其計算結果為 false 導致您的循環退出。
for 循環條件不正確,如果要控制台記錄數組的所有值,可以使用 length() 屬性檢查數組的長度並檢查 for 循環條件。
let i = 0; let arr = []; while(i < 8){ arr[i] = i; i++; } for(i = 0; i < arr.length; i++) { console.log("Result:", arr[i]); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.