简介
ECMAScript 2020 是一个比较新的 JavaScript 标准,它引入了一些新的特性,其中 Map 和 Set 是比较重要的两个特性。Map 和 Set 都是 ES6 引入的,但是在 ECMAScript 2020 标准中,它们都得到了增强和进一步优化,使得使用起来更加方便和灵活。
Map 和 Set 都是用于存储数据的集合,但是它们有着不同的特性。Map 是一种键值对映射的数据结构,可以存储任意类型的键和任意类型的值,而 Set 则是一种唯一值的集合,其中的值没有重复。
本文将分别详细介绍 Map 和 Set,介绍它们的用途和特性,并给出使用实例。
Map
Map 是一种非常有用的数据结构,它可以用于存储一对一的数据对。在 Map 中,数据对由一个键和一个值组成。Map 中的键和值可以是任何类型。
创建 Map
const map = new Map();
上面的代码创建了一个新的 Map 对象,我们可以使用 set 方法向 Map 中添加数据:
map.set('name', 'John'); map.set('age', 25);
访问 Map
使用 get 方法可以根据键名获取 Map 中对应的值:
const name = map.get('name'); const age = map.get('age');
删除 Map 中的数据
可以使用 delete 方法删除 Map 中的数据:
map.delete('name');
Map 的迭代
我们可以使用 for-of 循环来遍历 Map 中的数据:
for (const [key, value] of map) { console.log(`${key}: ${value}`); }
Map 的大小
可以使用 size 属性获取 Map 中数据的个数:
const size = map.size;
示例
以下是使用 Map 存储某个班级同学信息的实例:
const classmates = new Map(); classmates.set('John', { age: 25, city: 'New York' }); classmates.set('Sarah', { age: 28, city: 'London' }); classmates.set('Alice', { age: 24, city: 'Paris' }); for (const [name, info] of classmates) { console.log(`${name}: ${info.age}, ${info.city}`); }
输出结果:
John: 25, New York Sarah: 28, London Alice: 24, Paris
Set
Set 是一种唯一值的集合,其中的值没有重复。可以使用 Set 存储任何类型的值,包括基本类型和对象。
创建 Set
通过以下方式创建一个 Set:
const set = new Set();
向 Set 中添加数据
可以使用 add 方法向 Set 中添加数据:
set.add('hello'); set.add('world');
删除 Set 中的数据
可以使用 delete 方法删除 Set 中的数据:
set.delete('hello');
Set 中的迭代
可以使用 for-of 循环遍历 Set 中的值:
for (const value of set) { console.log(value); }
Set 的大小
可以使用 size 属性获取 Set 中数据的个数:
const size = set.size;
示例
以下是使用 Set 存储一些数据的实例:
const numbers = new Set([1, 2, 3, 4, 5, 6]); const fruits = new Set(['apple', 'banana', 'orange']); console.log(numbers.size); console.log(fruits.has('banana'));
输出结果:
6 true
总结
Map 和 Set 都是非常有用的数据结构,在必要的时候可以用来代替数组和对象。Map 可以用于存储一对一的数据对,而 Set 则是用于存储唯一值的集合。在使用 Map 和 Set 时,需要注意它们的特性和使用方式,以便更好地发挥它们的作用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ce1406b5eee0b525608efa