for…in是遍歷陣列、物件的key
1.index索引為字串型數字,不能直接進行幾何運算
2.遍歷順序有可能不是按照實際陣列的內部順序
3.使用for in會遍歷陣列所有的可列舉屬性,包括原型。
4.所以for in更適合遍歷物件,不要使用for in遍歷陣列。
let arr = [1, 2, 3];for (let i in
arr)
let obj =;
for (let i in
obj)
如果想用for…in遍歷值那就把js**改成這樣:
let arr = [1, 2, 3];for (let i in
arr)
let obj =;
for (let i in
obj)
那麼除了使用for迴圈,如何更簡單的正確的遍歷陣列達到我們的期望呢(即不遍歷原型上的屬性),es6中的for of更勝一籌.
記住,for in遍歷的是陣列的索引(即鍵名),而for of遍歷的是陣列元素值。
for of遍歷的只是陣列內的元素,而不包括陣列的原型屬性。
for…of是遍歷陣列的value
let arr = [1, 2, 3];for(let i of arr)
總結
js for in和for of的區別
for.in 語句用於遍歷陣列或者物件的屬性 對陣列或者物件的屬性進行迴圈操作 for in 迴圈中的 每執行一次,就會對陣列的元素或者物件的屬性進行一次操作。使用for in可以遍歷陣列,但是會存在以下問題 1.index索引為字串型數字 注意,非數字 不能直接進行幾何運算。2.遍歷順序有可能不是...
forEach for in與for of的區別
objarr.foreach function value foreach方法沒辦法使用break語句跳出迴圈,或者使用return從函式體內返回 for var index in objarr 以上 會出現的問題 1.index值 會是字串 string 型別 2.迴圈不僅會遍歷陣列元素,還會遍歷...
js for in 遍歷物件與陣列
遍歷物件 let obj for in 遍歷物件 key為物件的屬性名稱,遍歷屬性值時用操作符訪問 通過操作符為物件新增屬性或訪問屬性時,屬性名稱可以是任何字串。for let key in obj 遍歷乙個物件組合成乙個新物件 遍歷陣列 let arr 9,5,2,7,3,4 for in 遍歷陣...