介绍
ES6 带来了许多新特性,其中最受欢迎的就是 ECMAScript 的数据结构扩展。自 ES6 以来,有许多新的数据类型,比如 Set、Map、WeakSet 和 WeakMap 等。这些数据类型在熟练掌握后,能够为开发者带来许多方便。本文将主要介绍其中之一——Set。
Set 是什么?
Set 是一种无序且元素唯一的集合,其中任何两个元素都不相同。 ES6 引入了 Set 数据结构,用于存储数据的集合,并允许我们进行遍历,添加或删除集合中的元素。
Set 特点
- Set 中的元素保证唯一
- Set 中的元素按插入顺序排列,无法进行排序
- Set 可以存储任何类型的数据,包括对象和原始值
基本用法
创建 Set
可以通过构造函数来创建 Set 实例,该构造函数接受一个可迭代对象作为参数。下面是一个基本的示例:
const set = new Set([1, 2, 3]);
添加元素
可以使用 add 方法向 Set 中添加元素:
set.add(4);
删除元素
可以使用 delete 方法从 Set 中删除元素:
set.delete(1);
检查元素是否存在
可以使用 has 方法检查 Set 中是否存在指定元素:
set.has(2); // true
遍历元素
可以使用 forEach 方法或 for...of 循环来遍历 Set 中的元素:
set.forEach((value) => { console.log(value); }); for (let value of set) { console.log(value); }
Set 和数组的互相转换
Set 转数组
可以使用扩展运算符(...)将 Set 转化为数组:
const set = new Set([1, 2, 3]); const array = [...set];
数组转 Set
可以使用 Set 构造函数将数组转换为 Set:
const array = [1, 2, 3]; const set = new Set(array);
Set 实战案例
数组去重
使用 Set 来去除数组中的重复元素是 Set 的常用场景之一:
const array = [1, 2, 2, 3, 3, 4]; const set = new Set(array); const newArray = [...set]; // [1, 2, 3, 4]
总结
Set 是 ES6 中新增的一种数据结构,可以帮助开发者更方便的进行数据存储和管理。我们可以通过 add、delete、has、forEach、for...of 等方法完成对集合的操作。需要注意的是,通过 Set 得到的结果是不保证有序的。因此,我们通常会将 Set 转化为数组,以便进行需要保证顺序的操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a7a5ec48841e9894422550