在 ES6 中,Set 和 Map 是两个新的数据结构,它们分别用于存储一组唯一的值和键值对。本文将详细介绍 Set 和 Map 的使用方法和特性。
Set
Set 是一种类似于数组的数据结构,它存储的值都是唯一的,不会出现重复。Set 的主要特性如下:
- 可以通过
new Set()
创建一个空的 Set 对象。 - 可以通过
new Set(iterable)
创建一个包含指定元素的 Set 对象。 - Set 中的值是唯一的,如果添加重复的值,不会产生任何效果。
- Set 中的值可以是任意类型,包括原始类型和对象类型。
- Set 中的值是无序的,不会按照添加顺序排列。
下面是一些 Set 的常用操作:
-- -------------------- ---- ------- ----- --- - --- ------- -- -- -- -- ---- ---------------------- -- - ----------- ---------------------- -- - -------------- ---------------------- -- - ------------------------ -- ---- ------------ ---------------------- -- -
Map
Map 是一种键值对的数据结构,它存储的是一组唯一的键和对应的值。Map 的主要特性如下:
- 可以通过
new Map()
创建一个空的 Map 对象。 - 可以通过
new Map(iterable)
创建一个包含指定键值对的 Map 对象。 - Map 中的键是唯一的,如果添加重复的键,后面的值会覆盖前面的值。
- Map 中的键可以是任意类型,包括原始类型和对象类型。
- Map 中的键值对是有序的,按照添加顺序排列。
下面是一些 Map 的常用操作:
-- -------------------- ---- ------- ----- --- - --- ------------- --------- ------- ------ ---------------------- -- - ----------------- ---------- ---------------------- -- - ------------------ ---------------------- -- - ----------------------------- -- ---- ------------ ---------------------- -- -
Set 和 Map 的应用
Set 和 Map 在实际开发中有很多应用场景,下面列举一些常见的应用:
数组去重
Set 可以用来实现数组去重,例如:
const arr = [1, 2, 3, 3, 4, 5]; const set = new Set(arr); const uniqueArr = Array.from(set); console.log(uniqueArr); // [1, 2, 3, 4, 5]
缓存数据
Map 可以用来缓存数据,例如:
-- -------------------- ---- ------- -------- ----------- - ----- ----- - -------------- -- --------------- - ------ -------------- - ----- ---- - -------------- ------------- ------ ------ ----- - ------------- - --- ------
索引数据
Map 可以用来索引数据,例如:
-- -------------------- ---- ------- ----- ---- - - ---- -- ----- -------- ------- ---------- ---- -- ----- ------ ------- -------- ---- -- ----- ---------- ------- -------- ---- -- ----- -------- ------- -------- ---- -- ----- ------ ------- ---------- -- ----- ----- - --- ------ ----------------- -- - ------------------ ------ --- -------------------------- -- ---- -- ----- ---------- ------- -------
总结
Set 和 Map 是 ES6 中新增的两种数据结构,它们分别用于存储一组唯一的值和键值对。Set 和 Map 的特性和应用场景都非常丰富,掌握它们的使用方法可以让我们在实际开发中更加高效和便捷。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c9d4abadd4f0e0ff3aa6a3