当前位置:首页 > JavaScript

js 实现集合

2026-02-02 05:36:58JavaScript

集合的基本概念

集合是一种无序且元素唯一的数据结构,常用于存储不重复的值。JavaScript 原生提供了 Set 对象来实现集合功能。

创建集合

使用 Set 构造函数可以创建一个空集合,或通过传递一个可迭代对象(如数组)初始化集合:

const emptySet = new Set();
const setFromArray = new Set([1, 2, 3, 2]); // 重复的 2 会被自动去重
console.log(setFromArray); // 输出: Set {1, 2, 3}

添加元素

通过 add 方法向集合中添加元素。如果元素已存在,集合不会发生变化:

const set = new Set();
set.add(1);
set.add(2);
set.add(1); // 重复添加无效
console.log(set); // 输出: Set {1, 2}

删除元素

使用 delete 方法移除集合中的指定元素,返回布尔值表示是否删除成功:

set.delete(2); // 返回 true
set.delete(99); // 返回 false

检查元素是否存在

通过 has 方法检查集合是否包含某个元素:

console.log(set.has(1)); // 输出: true
console.log(set.has(2)); // 输出: false

获取集合大小

使用 size 属性获取集合中元素的数量:

console.log(set.size); // 输出: 1

清空集合

调用 clear 方法清空集合中的所有元素:

set.clear();
console.log(set.size); // 输出: 0

遍历集合

集合可以通过 forEach 或迭代器(如 for...of)遍历:

const set = new Set(['a', 'b', 'c']);
set.forEach(value => console.log(value)); // 依次输出 'a', 'b', 'c'

for (const item of set) {
  console.log(item); // 依次输出 'a', 'b', 'c'
}

集合运算

原生 Set 不直接支持并集、交集、差集等操作,但可以通过以下方式实现:

并集:合并两个集合的所有元素

const union = (setA, setB) => new Set([...setA, ...setB]);

交集:获取两个集合共有的元素

const intersection = (setA, setB) => new Set([...setA].filter(x => setB.has(x)));

差集:获取存在于集合 A 但不在集合 B 中的元素

const difference = (setA, setB) => new Set([...setA].filter(x => !setB.has(x)));

集合与数组转换

集合可以通过扩展运算符或 Array.from 转换为数组:

const set = new Set([1, 2, 3]);
const array1 = [...set];
const array2 = Array.from(set);

注意事项

  • 集合中的元素通过严格相等(===)比较唯一性。
  • NaN 在集合中被视为与自身相等,尽管 NaN !== NaN
  • 对象引用是唯一的,即使内容相同也会被视为不同元素。

js 实现集合

标签: js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…