ES6中Iterator与for..of..遍历用法分析
本文实例讲述了ES6中Iterator与for..of..遍历用法。分享给大家供大家参考,具体如下:
Iterator与for..of..遍历
1.Iterator概念
遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。JS中有些数据结构具备原生的Iterator接口。为了更好理解这个概念,我们也可以自己写一个Iterator。
varit=simIteractor(['hi','ES5']); console.log(it.next());//Object{value:"hi",done:false} console.log(it.next());//Object{value:"ES5",done:false} console.log(it.next());//Object{value:undefined,done:true} functionsimIteractor(array){ varnextIndex=0; return{ next:function(){ returnnextIndex2.ES6中规定,默认的Iterator接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有Symbol.iterator属性就可以任务是可遍历的。在ES6中,有3类数据结构原生具备Iterator接口:数组、某些类似数组的对象、Set及Map。
3.提到可遍历,就要说说遍历的方法。
for...in...:for-in是为普通对象设计的,你可以遍历得到字符串类型的键,因此不适用于数组遍历。
For...of...:for-of循环用来遍历数据—例如数组中的值。for-of循环也可以遍历其它的集合
for-of循环不仅支持数组,还支持大多数类数组对象,例如DOMNodeList。
for-of循环也支持字符串遍历,它将字符串视为一系列的Unicode字符来进行遍历:
or(varchrof"abc"){ alert(chr);//依次弹出a,b,c }它同样支持Map和Set对象遍历。如果你不知道Map请看https://www.nhooo.com/article/110048.htm,如果你不知道Set请看https://www.nhooo.com/article/110052.htm。
希望本文所述对大家ECMAScript程序设计有所帮助。