什么是 `Set` 和 `Map` 以及如何使用它们?
主题
JavaScript
在GitHub上编辑
TL;DR
Set
和 Map
是内置的 JavaScript 对象,可帮助管理数据集合。Set
是唯一值的集合,而 Map
是键值对的集合,其中键可以是任何类型。Set
适用于存储唯一项,而 Map
适用于将值与键关联。
// Set examplelet mySet = new Set([1, 2, 3, 3]); // Set {1, 2, 3} (duplicate values are not added)mySet.add(4);console.log(mySet); // Set {1, 2, 3, 4}// Map examplelet myMap = new Map();myMap.set('key1', 'value1');myMap.set('key2', 'value2');console.log(myMap.get('key1')); // 'value1'
Set
什么是 Set
?
Set
是值的集合,其中每个值都必须是唯一的。它类似于数组,但不允许重复值。
如何创建 Set
您可以使用 Set
构造函数创建 Set
:
let mySet = new Set([1, 2, 3, 3]);console.log(mySet); // Set {1, 2, 3}
常用方法
add(value)
: 将具有给定值的元素添加到Set
。delete(value)
: 删除与该值关联的元素。has(value)
: 返回一个布尔值,指示该值是否存在于Set
中。clear()
: 从Set
中删除所有元素。size
: 返回Set
中的元素数量。
使用示例
let mySet = new Set();mySet.add(1);mySet.add(2);mySet.add(2); // Duplicate value, will not be addedconsole.log(mySet.has(1)); // trueconsole.log(mySet.size); // 2mySet.delete(1);console.log(mySet.has(1)); // falsemySet.clear();console.log(mySet.size); // 0
Map
什么是 Map
?
Map
是键值对的集合,其中键可以是任何类型,包括对象、函数和基本类型。
如何创建 Map
您可以使用 Map
构造函数创建 Map
:
let myMap = new Map();myMap.set('key1', 'value1');myMap.set('key2', 'value2');console.log(myMap); // Map { key1: "value1", key2: "value2" }
常用方法
set(key, value)
: 添加或更新具有指定键和值的一个元素。get(key)
: 返回与该键关联的值。delete(key)
: 移除与该键关联的元素。has(key)
: 返回一个布尔值,指示该键是否存在于Map
中。clear()
: 从Map
中移除所有元素。size
: 返回Map
中元素的数量。
使用示例
let myMap = new Map();myMap.set('key1', 'value1');myMap.set('key2', 'value2');console.log(myMap.get('key1')); // 'value1'console.log(myMap.has('key2')); // trueconsole.log(myMap.size); // 2myMap.delete('key1');console.log(myMap.has('key1')); // falsemyMap.clear();console.log(myMap.size); // 0