2024年鸿蒙最全【ES6】迭代器Iterator_iterator的对象创建,百度测试岗位面试题

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { done: true }


在这个例子中,我们定义了一个createIterator函数,它接收一个数组作为参数,并返回一个具有next方法的对象。next方法在每次调用时返回一个包含当前元素和done属性的对象,当所有元素都被访问后,done属性将为true。


##### 使用for…of循环


在ES6中引入的for…of循环可以用于遍历具有next方法的对象,如上面的自定义迭代器:



let iterator = createIterator([1, 2, 3]);

for (let value of iterator) {
console.log(value); // 1, 2, 3
}


for…of循环会不断调用迭代器的next方法,直到返回的done属性为true。在每次迭代中,当前元素的值会被赋值给value变量,然后被输出到控制台。


##### 内建迭代器


除了自定义迭代器,JavaScript还提供了许多内建的迭代器,如数组迭代器、Map迭代器和Set迭代器等。这些内建的迭代器都实现了Iterator接口,可以使用for…of循环进行遍历。


下面是一个使用数组迭代器的例子:



let array = [1, 2, 3];

for (let value of array) {
console.log(value); // 1, 2, 3
}


在这个例子中,for…of循环直接遍历了数组array。由于数组实现了Iterator接口,所以可以直接使用for…of循环。




**深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

![](https://img-blog.csdnimg.cn/direct/743b668910224b259a5ffe804fa6d0db.png)
![img](https://img-blog.csdnimg.cn/img_convert/6d502cb518023c8a5bbe270bfec7c9f8.png)
![img](https://img-blog.csdnimg.cn/img_convert/ef267a809d96f4888203adb93e00f07d.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**

会持续更新**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ES6迭代器Iterator)是一种新的遍历机制,它有两个核心特点。首先,迭代器是一个接口,通过Symbol.iterator方法来创建迭代器,并通过迭代器的next()方法来获取数据。其次,迭代器是用于遍历数据结构的指针,类似于数据库的游标。例如,我们可以使用迭代器来遍历数组。比如,对于数组\[20,30,50,20,50\],我们可以通过arr\[Symbol.iterator\]()来创建一个迭代器,然后使用迭代器的next()方法来逐个获取数组中的元素。\[1\] 除了数组,具备Iterator接口的数据结构都可以进行解构赋值和扩展运算符(...运算符)操作。例如,字符串也具备Iterator接口,我们可以使用扩展运算符将字符串转换为字符数组。比如,对于字符串'hello',我们可以使用\[...str\]来将其转换为字符数组\['h', 'e', 'l', 'l', 'o'\]。这是因为字符串是具备Iterator接口的数据结构,我们可以自定义迭代器来遍历字符串中的字符。\[2\] 除了数组和字符串,还有其他可迭代的数据结构,比如类型数组(TypedArray)。我们可以使用for...of循环来遍历这些可迭代的数据结构。例如,对于数组\["zero", "one", "two"\],我们可以使用for...of循环来逐个输出数组中的元素。\[3\] #### 引用[.reference_title] - *1* [ES6 迭代器Iterator](https://blog.csdn.net/weixin_49342009/article/details/122665011)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [es6 迭代器iterator](https://blog.csdn.net/weixin_43443341/article/details/121417247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ES6迭代器 Iterator 详细介绍](https://blog.csdn.net/weixin_43856422/article/details/128290261)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值