数组遍历方法
收集一些各种遍历的方法,主要针对数组
最传统方法:for( ; ; ){}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
for in 方法
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
forEach 方法 Array.forEach(callback)
注意:forEach()方法是ES5.1标准引入的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
在最新的ES6标准中新增了一个新方法 ==for of==
for of 方法
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。Map,set–无下标,无法使用索引进行遍历
为了统一集合类型,ES6标准引入了新的iterable类型,
Array、Map和Set都属于iterable类型。
==具有iterable类型的集合可以通过新的for … of循环来遍历。==
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
for … of循环和for … in循环有何区别
for … in循环,它遍历的实际上是对象的属性名称。
一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。
当我们手动给Array对象添加了额外的属性后,for … in循环将带来意想不到的意外效果:
for in 遍历数组时会为把数组索引作为键值 如:数组0、1、2、3、4、5、…的键;当我们这样写:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
而当我们使用for of 时:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
直接遍历出值,杜绝使用for in 时,下标索引的影响