Set 是 ES6 中新增的数据结构,用于存储一组不重复的值。在 ES7 中,Set.prototype 增加了 @@iterator 方法,用于返回一个包含 Set 中所有元素的迭代器对象。本文将详细介绍 @@iterator 方法的使用及其例子,帮助读者更好地理解和掌握该方法的使用。
Set.prototype @@iterator 方法的基本语法
Set.prototype @@iterator 方法的基本语法如下:
set[Symbol.iterator]()
其中,set 表示要返回迭代器对象的 Set 集合。
Set.prototype @@iterator 方法的使用
Set.prototype @@iterator 方法返回一个迭代器对象,该对象包含 Set 中所有元素。我们可以使用 for...of 循环或者手动调用迭代器对象的 next() 方法来遍历 Set 中的所有元素。
下面是使用 for...of 循环遍历 Set 的例子:
const set = new Set(['apple', 'banana', 'orange']); for (const item of set) { console.log(item); } // 输出: // apple // banana // orange
下面是手动调用迭代器对象的 next() 方法遍历 Set 的例子:
-- -------------------- ---- ------- ----- --- - --- ------------- --------- ----------- ----- -------- - ----------------------- --- ------ - ---------------- ----- -------------- - -------------------------- ------ - ---------------- - -- --- -- ----- -- ------ -- ------
Set.prototype @@iterator 方法的例子
下面是一些使用 Set.prototype @@iterator 方法的例子,帮助读者更好地理解和掌握该方法的使用。
例子一:求两个 Set 的并集
const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3, 4]); const union = new Set([...set1, ...set2]); console.log(union); // 输出:Set { 1, 2, 3, 4 }
例子二:求两个 Set 的交集
const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3, 4]); const intersection = new Set([...set1].filter(item => set2.has(item))); console.log(intersection); // 输出:Set { 2, 3 }
例子三:求两个 Set 的差集
const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3, 4]); const difference = new Set([...set1].filter(item => !set2.has(item))); console.log(difference); // 输出:Set { 1 }
总结
本文介绍了 ES7 中的 Set.prototype @@iterator 方法的基本语法和使用方法,并给出了一些例子帮助读者更好地理解和掌握该方法的使用。通过学习本文,读者可以更好地使用 Set.prototype @@iterator 方法来遍历 Set 集合中的元素,以及实现一些常见的集合操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/650ca81395b1f8cacd6879de