ES6 取值迴圈 for...of
ES6 新的迭代迴圈方法,基本上可以取代傳統上陣列的forEach()
方法,另外這跟for...in
迴圈很相似,但這兩者的用法是不同的,以下會多舉例比較他們之間的關係。
概念與用途
- 相對於
for...in
是取得物件的 “鍵名/屬性名”,而for...of
是取得物件的 “鍵值/屬性值” - 可以使用的範圍包括 Array、Set、Map、字串或實作迭代器(Iterator)介面的物件
- 除了可用在陣列結構上,主要還是用來獲取有迭代性質物件的內容
1 | let arr = ['a', 'b', 'c', 'd']; |
使用特性
- for…of 迴圈只會返回具有數字索引屬性的內容
1 | let arr = ['a', 'b', 'c'] |
- 可使用陣列的
entries()
方法來獲取[key, value]
1 | let arr = ['a', 'b', 'c', 'd']; |
- 內層是陣列或物件類型的資料時,可以直接以解構賦值的方式去迭代循環取出
- 如果取出的變數沒有對應到值,則會變成
undefined
- 如果取出的變數沒有對應到值,則會變成
1 | // 內層為陣列類型時 |