為什麼不推薦for in遍歷陣列

2021-10-09 20:39:39 字數 1151 閱讀 3301

我們一般來說,使用for…in來遍歷物件,使用for…of來遍歷陣列

總之,for…in 迴圈主要是為了遍歷物件而生,不適用於遍歷陣列

for…of 迴圈可以用來遍歷陣列、類陣列物件,字串、set、map 以及 generator 物件

我們強烈建議不要使用for…in來遍歷陣列

為什麼???

因為for…in遍歷的是物件的key或者是陣列的下標。當然最重要的原因是,他會到原型鏈上尋找,遍歷其中新增加的屬性的key值

for of遍歷的是陣列元素值,

for in 遍歷的是陣列的索引(即鍵名)

for of遍歷的只是陣列內的元素,

for in 遍歷的不只是陣列內的元素,還有其新增的原型屬性和索引

for of 遍歷

array.prototype.

method

=function()

var myarray=[11

,21,41

,51,61

,71]myarray.name=

"陣列"

;for

(var value of myarray)

//輸出陣列每項的值:11,21,41,51,61,71

for in 遍歷

array.prototype.

method

=function()

var myarray=[11

,21,41

,51,61

,71]myarray.name=

"陣列"

;for

(var value in myarray)

// 輸出資料的下標以及新增屬性和方法: 0,1,2,3,4,5,method,name

總結

1因為我們的for…in會遍歷出拓展的方法和屬性,所以當我們對array進行擴充套件的時候,會列印出來,就比較的尷尬,不知所措

2我們的for…in得到的是key值,如果是陣列的話,得到的是字串型別的key值,如果這個時候進行下標操作的話,可能會出現奇奇怪怪的問題

for…in和for…of都可以使用break,continue的操作

基礎 MSDN 不指定邊界遍歷陣列

visual basic 文件 參考 語言參考 語句 a h for each next 語句 visual basic 文件 參考 可捕獲的錯誤 核心 visual basic 語言錯誤 下標越界 錯誤 9 針對乙個陣列或集合中的每個元素,重複執行一組語句。語法 foreachelement in...

為什麼我不推薦敏捷開發?

當專案成員越多,我越不推薦敏捷開發,原因在於 當連自己要做什麼事 為什麼這樣做 這樣做為了解決什麼問題 都搞不清楚前,就跳下去玩敏捷開發,那和比通靈還慘,通靈起碼還有個目標物在前面,搞不清楚狀況的人只能陪他跳世界迷霧開地圖了 敏捷開發 mba智庫百科 最下方有段 對敏捷開發的誤解 可順便參考 敏捷軟...

為什麼不推薦使用外來鍵?

外來鍵的優點 一 資料一致性 由資料庫自身保證資料一致性 完整性會更可靠,程式很難100 保證資料的一致性 完整性 二 er圖可靠性 有主外來鍵的資料庫設計可以增加er圖的可讀性 外來鍵的缺點 一 級聯問題 阿里巴巴的開發手冊中,就曾指出強制要求不允許使用外來鍵,一切外來鍵概念必須在應用層解決。因為...