带你读《现代Javascript高级教程》十五、Iterator 迭代器:简化集合遍历的利器(1)https://developer.aliyun.com/article/1349587?groupCode=tech_library
4) Set 遍历
使用迭代器可以遍历 Set 对象的所有元素。通过调用 Set 对象的 values() 方法,可以获取一个迭代器对象,然后使用迭代器的 next 方法逐个访问 Set 的元素。
示例代码:
const set = new Set([1, 2, 3, 4, 5]);const iterator = set.values(); let result = iterator.next();while (!result.done) { console.log(result.value); result = iterator.next();}
4. 自定义迭代器
除了使用内置数据结构提供的迭代器之外,我们还可以自定义迭代器来遍历自定义数据结构。要实现一个自定义迭代器,我们需要定义一个具有 next 方法的对象,并且该对象的 next 方法需要返回一个包含 value 和 done 属性的对象。
示例代码:
const myIterable = { data: [1, 2, 3, 4, 5], [Symbol.iterator]() { let index = 0; return { next: () => { if (index < this.data.length) { return { value: this.data[index++], done: false }; } else { return { value: undefined, done: true }; } }, }; },}; for (const item of myIterable) { console.log(item);}
在上面的示例中,我们定义了一个自定义数据结构 myIterable,它包含一个数组 data 和一个自定义的迭代器对象。迭代器对象的 next 方法会依次返回数组中的元素,并在遍历结束时返回 { value: undefined, done: true }。
- 结论
迭代器是 JavaScript 中一种强大且灵活的机制,它提供了一种统一的方式来遍历集合中的元素。通过使用迭代器,我们可以轻松地遍历数组、对象、Map、Set 等各种数据结构,并进行相应的操作。迭代器的应用场景非常广泛,它使我们能够以一种简洁而优雅的方式处理数据集合。熟练掌握迭代器的使用方法对于编写高效和可维护的代码非常重要。
- 参考资料
- MDN Web Docs - Iteration protocolsopen in new window
- Understanding Iterators and Iterables in JavaScriptopen in new window
- JavaScript Iterators and Generators: Asynchronous Iteration