每一次调用 next() 都会返回数据结构当前成员的信息。具体的说,返回一个包含 value 和 done 两个属性的对象,其中,value 属性是当前成员的值,done 属性是一个布尔值,表示遍历是否结束。
以 Set 为例:
let set = new Set([1,2,3,4,5])
let iterator = set.values()
console.log(iterator.next())//{value: 1, done: false}
记住,通过遍历器对象调用 next() 拿到的是一个包含两个描述属性的对象,而不是具体的某一个值!!
如果期望直接获取到具体的值,那么就需要通过上面提到的 for...of 来实现了。示例:
let set = new Set([1,2,3,4,5])
let iterator = set.values()
for(let item of iterator){
console.log(item)//1 2 3 4 5
}
当使用 for...of 循环遍历某种数据结构时,该循环会自动去寻找 Iterator 接口。一种数据结构只要部署了 Iterator 接口,那么就称这种数据结构是可遍历的(iterable)。
ES6 规定,默认的 Iterator 接口部署在数据结构的 Symbol.iterator 属性,也就是说,一种数据结构只要有 Symbol.iterator 属性,那

本文介绍了ES6中的Iterator接口,强调通过`next()`方法获取数据结构成员信息,并通过示例展示了如何使用for-of循环遍历数据结构。此外,还提及了数据结构的`Symbol.iterator`属性作为默认遍历器生成函数,以及JavaScript基础问题,如JS对象类型、面向对象特性等。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



