• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共299篇

    前端 - Javascript

关闭

返回栏目

关闭

返回前端 - Javascript栏目

90 - 内置对象 - Set 对象 - 集合的创建与操作

作者:

贺及楼

成为作者

更新日期:2025-02-21 18:55:05

前端 - Javascript 《内置对象 - Set 对象 - 集合的创建与操作》

在 JavaScript 的世界里,有许多内置对象为开发者提供了强大且便捷的功能,Set 对象就是其中之一。Set 对象是一种无序且唯一的数据集合,类似于数学中的集合概念,它可以帮助我们轻松处理不重复元素的存储和操作。本文将详细介绍 Set 对象的创建与操作,带你领略它的魅力。

一、Set 对象的创建

在 JavaScript 中,我们可以使用 Set 构造函数来创建一个新的 Set 对象。下面是几种常见的创建方式:

1. 创建一个空的 Set 对象

  1. const mySet = new Set();
  2. console.log(mySet); // 输出: Set(0) {}

这里我们使用 new Set() 创建了一个空的 Set 对象,初始时它不包含任何元素。

2. 使用数组初始化 Set 对象

  1. const numbers = [1, 2, 3, 2, 4];
  2. const numberSet = new Set(numbers);
  3. console.log(numberSet); // 输出: Set(4) { 1, 2, 3, 4 }

当我们使用数组初始化 Set 对象时,Set 会自动去除数组中的重复元素,只保留唯一的值。

3. 使用可迭代对象初始化 Set 对象

除了数组,我们还可以使用其他可迭代对象(如字符串)来初始化 Set 对象。

  1. const str = 'hello';
  2. const charSet = new Set(str);
  3. console.log(charSet); // 输出: Set(4) { 'h', 'e', 'l', 'o' }

同样,Set 会去除字符串中的重复字符。

二、Set 对象的基本操作

1. 添加元素

我们可以使用 add() 方法向 Set 对象中添加元素。

  1. const fruitSet = new Set();
  2. fruitSet.add('apple');
  3. fruitSet.add('banana');
  4. fruitSet.add('apple'); // 重复元素不会被添加
  5. console.log(fruitSet); // 输出: Set(2) { 'apple', 'banana' }

add() 方法返回 Set 对象本身,因此我们可以进行链式调用。

  1. fruitSet.add('cherry').add('date');
  2. console.log(fruitSet); // 输出: Set(4) { 'apple', 'banana', 'cherry', 'date' }

2. 删除元素

使用 delete() 方法可以从 Set 对象中删除指定的元素。

  1. fruitSet.delete('banana');
  2. console.log(fruitSet); // 输出: Set(3) { 'apple', 'cherry', 'date' }

delete() 方法返回一个布尔值,表示是否成功删除了指定元素。

3. 检查元素是否存在

使用 has() 方法可以检查 Set 对象中是否包含指定的元素。

  1. console.log(fruitSet.has('apple')); // 输出: true
  2. console.log(fruitSet.has('banana')); // 输出: false

4. 获取 Set 对象的大小

使用 size 属性可以获取 Set 对象中元素的数量。

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

5. 清空 Set 对象

使用 clear() 方法可以清空 Set 对象中的所有元素。

  1. fruitSet.clear();
  2. console.log(fruitSet); // 输出: Set(0) {}

三、Set 对象的遍历

Set 对象是可迭代的,我们可以使用多种方式对其进行遍历。

1. 使用 for...of 循环

  1. const colorSet = new Set(['red', 'green', 'blue']);
  2. for (const color of colorSet) {
  3. console.log(color);
  4. }
  5. // 输出:
  6. // red
  7. // green
  8. // blue

2. 使用 forEach() 方法

  1. colorSet.forEach((color) => {
  2. console.log(color);
  3. });
  4. // 输出:
  5. // red
  6. // green
  7. // blue

四、Set 对象的应用场景

1. 数组去重

  1. const arr = [1, 2, 2, 3, 4, 4, 5];
  2. const uniqueArr = [...new Set(arr)];
  3. console.log(uniqueArr); // 输出: [1, 2, 3, 4, 5]

2. 交集、并集和差集的计算

  1. const setA = new Set([1, 2, 3]);
  2. const setB = new Set([2, 3, 4]);
  3. // 交集
  4. const intersection = new Set([...setA].filter(x => setB.has(x)));
  5. console.log(intersection); // 输出: Set(2) { 2, 3 }
  6. // 并集
  7. const union = new Set([...setA,...setB]);
  8. console.log(union); // 输出: Set(4) { 1, 2, 3, 4 }
  9. // 差集
  10. const difference = new Set([...setA].filter(x =>!setB.has(x)));
  11. console.log(difference); // 输出: Set(1) { 1 }

五、总结

操作 方法/属性 描述 返回值
创建 new Set() 创建一个空的 Set 对象 Set 对象
创建 new Set(iterable) 使用可迭代对象初始化 Set 对象 Set 对象
添加元素 add(value) Set 对象中添加元素 Set 对象本身
删除元素 delete(value) Set 对象中删除指定元素 布尔值
检查元素 has(value) 检查 Set 对象中是否包含指定元素 布尔值
获取大小 size 获取 Set 对象中元素的数量 数字
清空 clear() 清空 Set 对象中的所有元素
遍历 for...of 循环 遍历 Set 对象中的元素
遍历 forEach(callback) 遍历 Set 对象中的元素并执行回调函数

通过本文的介绍,相信你已经对 JavaScript 中的 Set 对象有了全面的了解。Set 对象在处理不重复元素的存储和操作方面非常强大,合理使用它可以让你的代码更加简洁高效。希望你在实际开发中能够充分发挥 Set 对象的优势,提升开发效率。