JS基础(4)——数据结构(3)——集合

JS基础(4)——数据结构(3)——集合
最新回答
流年。亦乐

2026-02-09 20:12:46

ECMAScript 6 引入了一种新的数据结构——集合(Set),用于存储唯一的值,确保无重复。它在标准制定前的限制下,数组成为主要的数据结构,特别是用于模拟队列和栈。

Set 集合与 Map 映射的区别在于,前者是无重复元素的列表,而后者支持非数值型索引。创建集合非常直观,通过 new Set 即可,同时可以传入初始值数组。添加值时,add()方法提供了链式调用的功能,允许连续添加。

重要的是,Set 不允许添加重复元素。其提供了size属性获取元素个数,has()方法检查元素存在性,delete()和clear()方法用于删除元素。遍历集合可以通过for-of或forEach,同时keys(), values(), 和entries()方法帮助我们访问键值对。将集合转为数组,可以使用扩展运算符或Array.from()方法。

Set 的一个潜在问题在于,即使对象引用被删除,集合也会保留该对象,可能导致内存泄漏。为避免这种情况,引入了弱集合(WeakSet),它对对象为弱引用,仅在对象仍有引用时存在,但不支持添加基本数据类型和初始化时传入数组。尽管如此,弱集合仍支持基本的操作方法,如has(), add(), delete(),只是无法访问对象内部值。