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
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容