返回
JavaScript数据结构-集合|8月更文挑战
前端
2023-12-15 11:32:04
在JavaScript中,集合(Set)是一种包含唯一元素的数据结构。集合可以存储任何类型的值,包括数字、字符串、布尔值、对象甚至其他集合。
集合的定义
不包含任何成员的集合称为空集合 ,用{}
表示。
一个包含一个元素的集合称为单元素集合 ,例如{1}
。
一个包含多个元素的集合称为多元素集合 ,例如{1, 2, 3, 4, 5}
。
集合的操作
集合提供了很多有用的操作,包括:
- 增 :向集合中添加一个元素。
- 删 :从集合中删除一个元素。
- 查 :检查一个元素是否在集合中。
- 改 :修改集合中的一个元素。
- 交集 :返回两个集合的交集,即同时属于这两个集合的元素。
- 并集 :返回两个集合的并集,即属于这两个集合中的任何一个元素。
- 差集 :返回两个集合的差集,即属于第一个集合但不属于第二个集合的元素。
集合的应用
集合在JavaScript中有很多应用,包括:
- 去重 :去除数组中的重复元素。
- 判断元素是否存在 :快速判断一个元素是否在一个集合中。
- 查找交集和并集 :查找两个集合的交集和并集。
- 集合运算 :对集合进行各种运算,如交集、并集和差集。
集合的示例
// 创建一个集合
const set = new Set();
// 向集合中添加元素
set.add(1);
set.add(2);
set.add(3);
// 从集合中删除元素
set.delete(2);
// 检查一个元素是否在集合中
console.log(set.has(1)); // true
console.log(set.has(2)); // false
// 修改集合中的一个元素
set.forEach((value, key) => {
if (value === 1) {
set.delete(value);
set.add(4);
}
});
// 获取集合的大小
console.log(set.size); // 2
// 遍历集合
set.forEach((value, key) => {
console.log(value); // 3, 4
});
// 求两个集合的交集
const set1 = new Set([1, 2, 3]);
const set2 = new Set([3, 4, 5]);
const intersection = new Set([...set1].filter(x => set2.has(x)));
console.log(intersection); // Set {3}
// 求两个集合的并集
const union = new Set([...set1, ...set2]);
console.log(union); // Set {1, 2, 3, 4, 5}
// 求两个集合的差集
const difference = new Set([...set1].filter(x => !set2.has(x)));
console.log(difference); // Set {1, 2}