簡體   English   中英

Javascript:為什么對 arrays 使用 for 循環而不是 for-in 循環?

[英]Javascript: Why use a for loop instead of a for-in loop for arrays?

我一直在閱讀 Stoyan Stefanov 的面向對象的 Javascript,他曾寫道:

for-in循環用於遍歷數組元素(或 object,我們將在后面看到)。 這是它的唯一用途; 它不能用作替換forwhile的通用重復機制。 讓我們看一個使用for-in循環遍歷數組元素的示例。 但請記住,這僅用於提供信息,因為for-in主要適用於對象,而常規for循環應該用於數組。

我過去在迭代數組元素時一直使用for循環,我通常看到for循環不是用於此目的for-in循環,但是“常規for循環應該用於數組”的原因是什么“?

對 arrays 使用常規for循環的原因是它將迭代限制為索引值。

如果您使用for-in循環,它將遍歷 object 上的所有屬性(數組是一個對象),並且如果您將任意屬性附加到沒有數字索引的數組,可能會給您帶來意想不到的結果。

問題是某些庫(想到原型)擴展了數組類型,因此當您for in ,它會命中該數組上的所有enumerable屬性,其中包括數組的所有元素,但也都添加到屬性或方法。 不是你想要發生的事情。

for i in循環僅迭代數組的元素,即您定義為[1, 2, 3, 4]的任何內容。

好吧,當我不知道數組中元素的確切數量時,我主要使用它。 通常,它用於在動態或動態填充數組時對元素進行迭代。

暫無
暫無

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

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