ES6迭代器
迭代器由任意对象实现的接口,支持连续获取对象产出的每个值; 默认Symbol.iterator 属性。
#
消费方式- 手动调用next()方法消费
- for...of 循环自动消费(for( ; ; )、forEach)
迭代器模式, 可以支持迭代消费的数据结构(可迭代对象)
原生语言:for...of、数组结构、扩展操作符、Array.from()、创建集合、创建映射、Promise.all()、Promise.race()、yield*
#
自定义迭代器#
考察点- 给出打印结果并说明原因
- for...in 是枚举全部属性
- for...of 是迭代器
- 改造数据使得for...of可遍历出全部值
解决方法1:
方式2: 生成器函数
https://gitee.com/daaasheng/my_code_block/commit/b589b41274619c291a7b711ddada1fb72bd65a0e
#
疑问- for (let item of arr) {iter.next()} 与 for(let item of iter) 区别?
- 提前终止, 出发迭代器是否重新开始