在JavaScript中,Map 和 Set 是两种不同的数据结构,用于处理集合和映射。
Map
Set
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();
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();
Map 和 Set 在处理数据时提供了灵活性和性能的优势,具体选择取决于您的需求。
原文链接:codingdict.net