迭代器Iterator、生成器Generator详解

简介: 迭代器Iterator、生成器Generator详解

在讲Generator(生成器)之前,要先一起了解一下另外一个概念,迭代器

一、迭代器 Iterator

迭代器Iterator 是 ES6 引入的一种新的遍历机制,同时也是一种特殊的对象,它具有一些专门为迭代过程设计的专有接口;


每一个迭代器对象 都有一个 next() 方法,每次调用都会返回一个当前结果对象。


当前结果对象中有两个属性:


       1.value:  当前属性的值


       2.done:  用于判断是否遍历结束,当没有更多可返回的数据时,返回 true


       每调用一次 next() 方法,都会返回下一个可用的值,知道遍历结束。

二、生成器 Generator

生成器是一种返回迭代器的函数,通过 function 关键字后的( * )来表示,函数中会用到新的关键字 yield 。星号可以紧挨着 function 关键字,也可以在中间添加一个空格。

function* generator(){
    const list = [1,2,3];
    for(let i of list){
        yield i
    }
}
let g = generator();
console.log(g.next()); // {value: 1, done: false}
console.log(g.next()); // {value: 1, done: false}
console.log(g.next()); // {value: 1, done: false}
console.log(g.next()); // {value: 1, done: true}

三、特性

1. 每当执行完一条 yield 语句后函数就会自动停止运行,直到再次调用 next();


2. yield 关键字只可在生成器(Generator)内部使用,在其他地方使用会导致程序抛出错误;


3. 可以用函数表达式来创建生成器,但是不能使用箭头函数


比较常用的地方是在 stream 数据流处理的时候,会用到迭代器!

20210527153548522.png

20210527153548522.png

20210527153548522.png

20210527153548522.png

相关文章
|
28天前
|
JavaScript 前端开发
ES6 迭代器和生成器
总的来说,ES6 迭代器和生成器为 JavaScript 提供了更强大的遍历和控制能力,使代码更加灵活和高效。
22 1
|
JavaScript 前端开发
迭代器和生成器
在JavaScript中,迭代器(`Iterator`)是一个对象,用于在可迭代的数据结构中遍历和访问每个元素,而不必暴露该数据结构的内部结构。
|
存储 Python
18.从入门到精通:Python迭代器与生成器 迭代器 创建一个迭代器 StopIteration 生成器
18.从入门到精通:Python迭代器与生成器 迭代器 创建一个迭代器 StopIteration 生成器
|
Python
生成器和迭代器
生成器和迭代器
58 0
|
JavaScript 前端开发
ES6--》了解并应用迭代器与生成器
ES6中迭代器与生成器讲解
120 0
ES6--》了解并应用迭代器与生成器
|
设计模式 Python 容器
python编程:迭代对象、Iterator迭代器、生成器
python编程:迭代对象、Iterator迭代器、生成器
145 0
python编程:迭代对象、Iterator迭代器、生成器
C#编程-94:迭代器Iterator简单实例
C#编程-94:迭代器Iterator简单实例
115 0
C#编程-94:迭代器Iterator简单实例
|
JavaScript 前端开发
迭代器、生成器
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来了解JavaScript中的迭代器、生成器
98 0

热门文章

最新文章