ES6迭代器(Iterator):解锁for...of循环遍历数组、字符串、Map、Set等对象的便捷之道
ES6引入了新的迭代器协议,使得我们可以使用for...of循环来遍历任何实现了迭代器接口的对象。迭代器接口定义了两个方法:next()和return()。 - next()方法返回一个对象,该对象包含两个属性:value和done。value属性表示当前迭代的值,done属性表示是否已经迭代到对象的末尾。如果done为true,则表示已经迭代到对象的末尾,否则表示还有下一个值。 - return()方法用于提前结束迭代。 使用迭代器协议,我们可以遍历任何实现了迭代器接口的对象,而不需要关心其内部实现。这使得我们可以使用for...of循环来遍历数组、字符串、Map、Set等任何实现了迭代器接口的对象。 例如,我们可以使用for...of循环来遍历一个数组: ```javascript let arr = [1, 2, 3]; for (let item of arr) { console.log(item); } ``` 我们也可以使用for...of循环来遍历一个字符串: ```javascript let str = 'hello'; for (let char of str) { console.log(char); } ``` 我们还可以使用for...of循环来遍历一个Map或Set: ```javascript let map = new Map(); map.set('key1', 'value1'); map.set('key2', 'value2'); for (let [key, value] of map) { console.log(key, value); } let set = new Set(); set.add('value1'); set.add('value2'); for (let value of set) { console.log(value); } ``` ES6的迭代器协议提供了一种方便的方式来遍历任何实现了迭代器接口的对象,使得我们可以使用for...of循环来遍历数组、字符串、Map、Set等任何实现了迭代器接口的对象。 ######[AI写代码神器 | 385点数解答 | 2023-11-09 01:26:41]
- Java开发必备:迭代器Iterator的深度解析、使用方法及独特特点(百度文心 | 364点数解答 | 2023-11-09 16:41:04)327
- Python知识大挑战:10 道题揭秘编程关键要点与答案(字节豆包 | 296点数解答 | 2024-10-20 19:31:00)232
- 递归实现:将对象所有属性值转换为字符串!含代码示例(字节豆包 | 143点数解答 | 2024-11-08 10:25:12)376
- 递归实现:将对象所有属性值转换为字符串类型(字节豆包 | 142点数解答 | 2024-11-11 21:06:15)255
- 递归实现:将对象所有属性值转换为字符串,复杂嵌套也不怕!(阿里通义 | 467点数解答 | 2024-11-12 09:07:17)262
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)478
- C++ 求解:最少操作次数让字符串不再含 “friend” 子串!(讯飞星火 | 260点数解答 | 2024-08-17 16:30:49)464
- Python 巧解:最少操作次数让字符串告别“friend”子串(字节豆包 | 139点数解答 | 2024-08-18 13:04:14)401
- 3414 数字游戏:Python 求解 8 位 01 字符串中 1 的个数 (字节豆包 | 106点数解答 | 2024-10-27 14:23:27)426
- 巧用字符添加,计算字符串中“our”最大数量及开发注意要点(DeepSeek | 376点数解答 | 2025-10-30 19:20:06)79
- C 语言实现:处理字符串生成最多 “our” 串,附代码及关键开发注意点 (DeepSeek | 257点数解答 | 2025-10-30 19:20:36)107
- 动态规划求解数组下标元素和最大值代码分析与优化(字节豆包 | 346点数解答 | 2026-03-16 17:56:30)17