在 ECMAScript 2021 中,Map 和 Set 是两个非常有用的数据结构,它们可以用于存储和管理数据。本文将详细介绍 Map 和 Set 的使用方法和实用技巧,并提供示例代码,帮助读者更好地理解和应用这两个数据结构。
Map
Map 是一种键值对的集合,其中每个键都是唯一的。Map 可以使用任何类型的值作为键和值,包括对象、字符串、数字等。
创建 Map
可以使用 new
关键字创建一个空 Map:
const myMap = new Map();
也可以在创建时初始化 Map:
const myMap = new Map([ ['key1', 'value1'], ['key2', 'value2'], ['key3', 'value3'] ]);
添加和获取元素
可以使用 set()
方法向 Map 中添加元素:
myMap.set('key4', 'value4');
可以使用 get()
方法获取 Map 中指定键的值:
myMap.get('key4'); // 'value4'
删除元素
可以使用 delete()
方法删除 Map 中指定键的元素:
myMap.delete('key4');
遍历 Map
可以使用 for...of
循环遍历 Map 中的元素:
for (const [key, value] of myMap) { console.log(`${key}: ${value}`); }
还可以使用 forEach()
方法遍历 Map 中的元素:
myMap.forEach((value, key) => { console.log(`${key}: ${value}`); });
实用技巧
Map 转为数组
可以使用 Array.from()
方法将 Map 转为数组:
const myArray = Array.from(myMap);
对象转为 Map
可以使用 Object.entries()
方法将对象转为 Map:
const myObject = { key1: 'value1', key2: 'value2', key3: 'value3' }; const myMap = new Map(Object.entries(myObject));
Map 转为对象
可以使用 Object.fromEntries()
方法将 Map 转为对象:
const myObject = Object.fromEntries(myMap);
Set
Set 是一种没有重复值的集合,可以使用任何类型的值作为元素。
创建 Set
可以使用 new
关键字创建一个空 Set:
const mySet = new Set();
也可以在创建时初始化 Set:
const mySet = new Set(['value1', 'value2', 'value3']);
添加和获取元素
可以使用 add()
方法向 Set 中添加元素:
mySet.add('value4');
可以使用 has()
方法判断 Set 中是否包含指定元素:
mySet.has('value4'); // true
删除元素
可以使用 delete()
方法删除 Set 中指定元素:
mySet.delete('value4');
遍历 Set
可以使用 for...of
循环遍历 Set 中的元素:
for (const value of mySet) { console.log(value); }
还可以使用 forEach()
方法遍历 Set 中的元素:
mySet.forEach(value => { console.log(value); });
实用技巧
Set 转为数组
可以使用 Array.from()
方法将 Set 转为数组:
const myArray = Array.from(mySet);
数组转为 Set
可以使用 new Set()
方法将数组转为 Set:
const myArray = ['value1', 'value2', 'value3']; const mySet = new Set(myArray);
结论
Map 和 Set 是 ECMAScript 2021 中非常有用的数据结构,可以用于存储和管理数据。本文介绍了 Map 和 Set 的使用方法和实用技巧,希望能够帮助读者更好地理解和应用这两个数据结构。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/676363b4856ee0c1d41e1166