Set 是一个数据结构,它类似于数组,但它的值是唯一的。ES6 中引入了 Set,它可以让我们更方便地处理一些集合类型的数据。
基本用法
创建一个 Set 对象只需要使用 new Set()
即可。
const mySet = new Set();
我们还可以通过传入一个数组来创建一个 Set。
const mySet = new Set([1, 2, 3]);
我们可以使用 add()
方法向 Set 中添加值。
mySet.add(4);
我们还可以使用 has()
方法来判断 Set 中是否有某个值。
mySet.has(4); // true
我们可以使用 size
属性来获取 Set 中值的数量。
mySet.size; // 4
我们可以使用 delete()
方法来删除 Set 中的某个值。
mySet.delete(4);
Set 的迭代器
Set 迭代器提供了一些方法来循环遍历 Set 中的值。
keys()
方法
keys()
方法返回 Set 中所有值的迭代器。
for (const key of mySet.keys()) { console.log(key); }
values()
方法
values()
方法与 keys()
方法相同,返回 Set 中所有值的迭代器。
for (const value of mySet.values()) { console.log(value); }
entries()
方法
entries()
方法返回 Set 中每个值的迭代器。由于 Set 没有键名,返回的是值本身,因此键名和键值相同。
for (const entry of mySet.entries()) { console.log(entry); }
Set 的操作方法
Set 还具有一些操作方法来处理 Set 中的数据。
forEach()
方法
forEach()
方法可以遍历 Set 中的每个值,并对每个值执行回调函数。
mySet.forEach((value) => { console.log(value); });
clear()
方法
clear()
方法可以清空 Set 中所有的值。
mySet.clear();
union()
方法
union()
方法可以合并两个 Set,并返回一个新的 Set,其中包含两个 Set 中所有的不重复的值。
const setA = new Set([1, 2, 3]); const setB = new Set([3, 4, 5]); const setC = new Set([...setA, ...setB]); console.log(setC); // Set {1, 2, 3, 4, 5}
intersection()
方法
intersection()
方法可以返回两个 Set 中相同的值。
const setA = new Set([1, 2, 3]); const setB = new Set([3, 4, 5]); const setC = new Set([...setA].filter((x) => setB.has(x))); console.log(setC); // Set {3}
difference()
方法
difference()
方法可以返回两个 Set 中不同的值。
const setA = new Set([1, 2, 3]); const setB = new Set([3, 4, 5]); const setC = new Set([...setA].filter((x) => !setB.has(x))); console.log(setC); // Set {1, 2}
总结
Set 是一个用于存储无重复值的集合类数据结构。它提供了一些操作方法以便我们更方便地对集合进行操作,在处理数据时非常方便。希望本文能够为大家对 ES6 中的 Set 有更深入的了解和应用提供帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c23e5983d39b488164605a