JavaScript Set
JavaScript 的 Set(集合)是一组唯一值的集合。
每个值只能在 Set 中出现一次。
Set 可以容纳任何数据类型的值。
Set 方法
方法 | 描述 |
---|---|
new Set() | 创建新的 Set。 |
add() | 向 Set 中添加新元素。 |
delete() | 从 Set 中移除元素。 |
has() | 如果值存在则返回 true。 |
clear() | 从 Set 中移除所有元素。 |
forEach() | 为每个元素调用回调函数。 |
values() | 返回包含 Set 中所有值的迭代器。 |
keys() | 与 values() 相同。 |
entries() | 返回迭代器,其中包含 Set 中的 [value,value] 值值对。 |
属性 | 描述 |
---|---|
size | 返回 Set 中元素的数量。 |
如何创建 Set
您可以通过以下方式创建 JavaScript Set:
- 将数组传递给 new Set()
- 创建一个新的 Set,然后使用 add() 方法添加值
- 创建一个新的 Set,然后使用 add() 方法添加变量
新的 Set() 方法
例子 1
将数组传递给新的 Set() 构造函数:
// 创建 Set const letters = new Set(["a","b","c"]);
例子 2
创建一个 Set 并添加字面量值:
// 创建 Set const letters = new Set(); // 将值添加到 Set letters.add("a"); letters.add("b"); letters.add("c");
例子 3
创建一个 Set 并添加变量:
// 创建变量 const a = "a"; const b = "b"; const c = "c"; // 创建 Set const letters = new Set(); // 向 Set 添加变量 letters.add(a); letters.add(b); letters.add(c);
add() 方法
例子 1
letters.add("d"); letters.add("e");
例子 2
如果您添加相等的元素,只有第一个会被保存:
letters.add("a"); letters.add("b"); letters.add("c"); letters.add("c"); letters.add("c"); letters.add("c"); letters.add("c"); letters.add("c");
forEach() 方法
forEach() 方法为每个 Set 元素调用函数:
实例
// 创建 Set const letters = new Set(["a","b","c"]); // 列出所有条目 let text = ""; letters.forEach (function(value) { text += value; })
values() 方法
例子 1
values() 方法返回包含 Set 中所有值的 Iterator 对象:
letters.values() // 返回 [object Set Iterator]
例子 2
现在您可以使用 Iterator 对象访问元素:
// 创建迭代器 const myIterator = letters.values(); // 列出所有值 let text = ""; for (const entry of myIterator) { text += entry; }
keys() 方法
Set 没有键。
keys() 返回与 values() 相同的结果。
这使得 Set 与 Map 相兼容。
实例
letters.keys() // 返回 [object Set Iterator]
entries() 方法
Set 没有键(key)。
entries() 方法返回的是 [value,value] 值值对,而不是 [key,value] 键值对。
这使得 Set 与 Map 兼容:
实例
// 创建迭代器(Iterator) const myIterator = letters.entries(); // 列出所有条目 let text = ""; for (const entry of myIterator) { text += entry; }
Set 是对象
对于 Set,typeof 返回 object:
typeof letters; // 返回 object
对于 Set,instanceof Set 返回 true:
letters instanceof Set; // 返回 true