在JavaScript中Map和Set数据结构


在JavaScript中,MapSet 是两种不同的数据结构,用于处理集合和映射。

1. Map(映射)

Map 是一种键值对的集合,其中键和值可以是任意类型。与对象相比,Map 有一些优势,例如可以使用任意类型的键,Map 中的键值对是有序的,Map 具有内建的方法用于获取键值对的数量等。

创建 Map:

// 创建一个空的 Map
let myMap = new Map();

// 创建带有初始值的 Map
let personMap = new Map([
  ['name', 'John'],
  ['age', 30],
  ['gender', 'male']
]);

常见操作:

// 添加键值对
myMap.set('key', 'value');

// 获取值
let value = myMap.get('key');

// 检查键是否存在
let keyExists = myMap.has('key');

// 删除键值对
myMap.delete('key');

// 获取 Map 中的所有键
let keys = Array.from(myMap.keys());

// 获取 Map 中的所有值
let values = Array.from(myMap.values());

// 获取 Map 中的所有键值对
let entries = Array.from(myMap.entries());

// 获取 Map 的大小
let size = myMap.size;

// 清空 Map
myMap.clear();

2. Set(集合)

Set 是一种无重复值的集合。与数组不同,Set 中的值是唯一的,不允许重复。Set 是一种有序的集合,但是它没有键值对的概念,只包含单一的值。

创建 Set:

// 创建一个空的 Set
let mySet = new Set();

// 创建带有初始值的 Set
let numbersSet = new Set([1, 2, 3, 4, 5]);

常见操作:

// 添加元素
mySet.add('value');

// 检查元素是否存在
let valueExists = mySet.has('value');

// 删除元素
mySet.delete('value');

// 获取 Set 的大小
let size = mySet.size;

// 获取 Set 中的所有元素
let values = Array.from(mySet);

// 清空 Set
mySet.clear();

MapSet 在处理数据时提供了灵活性和性能的优势,具体选择取决于您的需求。


原文链接:codingdict.net