TL;DR
Set 和 Map 是内置的 JavaScript 对象,可帮助管理数据集合。Set 是唯一值的集合,而 Map 是键值对的集合,其中键可以是任何类型。Set 适用于存储唯一项,而 Map 适用于将值与键关联。
// Set example
let 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 example
let 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 added
console.log(mySet.has(1)); // true
console.log(mySet.size); // 2
mySet.delete(1);
console.log(mySet.has(1)); // false
mySet.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')); // true
console.log(myMap.size); // 2
myMap.delete('key1');
console.log(myMap.has('key1')); // false
myMap.clear();
console.log(myMap.size); // 0
延伸阅读