数组以及对象遍历方法对比
生活随笔
收集整理的這篇文章主要介紹了
数组以及对象遍历方法对比
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
以數(shù)組為例,JavaScript 提供多種遍歷語法。最原始的寫法就是for循環(huán)。
for (var index = 0; index < myArray.length; index++) {console.log(myArray[index]); }
這種寫法比較麻煩,因此數(shù)組提供內(nèi)置的forEach方法。
myArray.forEach(function (value) {console.log(value); });?
這種寫法的問題在于,無法中途跳出forEach循環(huán),break命令或return命令都不能奏效。
for...in循環(huán)可以遍歷數(shù)組的鍵名。
for (var index in myArray) {console.log(myArray[index]); }?
for...in循環(huán)有幾個(gè)缺點(diǎn)。
- 數(shù)組的鍵名是數(shù)字,但是for...in循環(huán)是以字符串作為鍵名“0”、“1”、“2”等等。
- for...in循環(huán)不僅遍歷數(shù)字鍵名,還會(huì)遍歷手動(dòng)添加的其他鍵,甚至包括原型鏈上的鍵。
- 某些情況下,for...in循環(huán)會(huì)以任意順序遍歷鍵名。
總之,for...in循環(huán)主要是為遍歷對象而設(shè)計(jì)的,不適用于遍歷數(shù)組。
for...of循環(huán)相比上面幾種做法,有一些顯著的優(yōu)點(diǎn)。for (let value of myArray) {console.log(value); } 有著同for...in一樣的簡潔語法,但是沒有for...in那些缺點(diǎn)。 不同于forEach方法,它可以與break、continue和return配合使用。 提供了遍歷所有數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一操作接口。 下面是一個(gè)使用 break 語句,跳出for...of循環(huán)的例子。for (var n of fibonacci) {if (n > 1000)break;console.log(n); } 上面的例子,會(huì)輸出斐波納契數(shù)列小于等于 1000 的項(xiàng)。如果當(dāng)前項(xiàng)大于 1000,就會(huì)使用break語句跳出for...of循環(huán)。?
?
轉(zhuǎn)載于:https://www.cnblogs.com/followme789/p/10968875.html
總結(jié)
以上是生活随笔為你收集整理的数组以及对象遍历方法对比的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mobx, 化繁为简的艺术
- 下一篇: 忽如一夜冬风来,团队忽然就解散了