簡體   English   中英

JavaScript 循環不起作用(學習JS)

[英]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]); }

從我的角度來看,這段代碼是邏輯:

  1. 我聲明了我所有的變量
  2. 我在數組中放了一些隨機值(只是為了填充它)
  3. 我想在條件為真時 console.log 數組的每個元素

我知道在 while 循環之后i等於8 ,但是即使在 for 之前的“ i=0 ”也不能解決問題(順便說一句,為什么 for 初始化中的 i = 0 沒有將其設置為 0?)

有人可以解釋一下是什么破壞了代碼嗎?

for循環一直運行,直到條件不成立。

第一次圍繞循環i0所以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.

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