js实现的集合
集合的概念
集合是一种无序且不重复的数据结构,常用于存储唯一值。JavaScript 原生未提供专门的集合类型,但可通过以下方式实现:

使用 Set 对象(ES6+)
ES6 引入的 Set 对象是原生集合实现,支持添加、删除、查找等操作:

const set = new Set();
set.add(1); // 添加元素
set.add(2);
set.add(1); // 重复值会被忽略
console.log(set); // 输出: Set {1, 2}
set.delete(2); // 删除元素
console.log(set.has(1)); // 检查存在性: true
console.log(set.size); // 获取元素数量: 1
使用对象模拟集合
ES5 或更早版本可通过对象键的唯一性模拟集合:
const set = {};
set['key1'] = true; // 添加元素
set['key2'] = true;
set['key1'] = true; // 重复键会被覆盖
delete set['key2']; // 删除元素
console.log('key1' in set); // 检查存在性: true
console.log(Object.keys(set).length); // 获取元素数量
集合操作示例
- 并集:合并两个集合,去除重复值
const union = (setA, setB) => new Set([...setA, ...setB]); - 交集:获取两个集合的共同元素
const intersection = (setA, setB) => new Set([...setA].filter(x => setB.has(x))); - 差集:获取仅存在于第一个集合的元素
const difference = (setA, setB) => new Set([...setA].filter(x => !setB.has(x)));
注意事项
Set对象允许存储任何类型的唯一值(包括对象引用)。- 对象模拟集合时,键会被自动转换为字符串,可能引发类型问题。
Set提供迭代方法(如forEach),而对象模拟需手动处理。
根据需求选择原生 Set 或对象模拟,优先推荐 Set 以实现更清晰的代码逻辑。






