ES6中的Map和Set数据结构

碧海潮生 2021-03-12 ⋅ 18 阅读

在ES6中,引入了许多新的数据结构,其中包括Map和Set。Map和Set分别提供了一个有序的集合和一个无序的集合,使得在处理一些特定的数据问题时更加方便和高效。

Map数据结构

Map是ES6中新增的有序的集合,其基本的数据结构为键值对。与对象不同的是,Map中的键可以是任意类型的值,而对象的键会被转换为字符串类型。

创建Map

我们可以使用new Map()来创建一个空的Map对象。

let map = new Map();

此外,我们也可以通过一个二维数组来创建一个初始的Map对象。

let map = new Map([
    ['name', 'Tom'],
    ['age', 25]
]);

添加和获取元素

在Map中,我们可以使用set(key, value)方法来向Map中添加元素。

map.set('gender', 'male');

使用get(key)方法可以根据键获取对应的值。

console.log(map.get('gender')); // 输出: "male"

遍历Map

可以使用for...of循环来遍历Map中的键和值对。

for(let [key, value] of map) {
    console.log(key + ' : ' + value);
}
// 输出:
// name : Tom
// age : 25
// gender : male

使用keys()方法可以获取Map中所有的键,使用values()方法可以获取Map中所有的值。

删除元素

使用delete(key)方法可以从Map中删除指定键和对应的值。

map.delete('age');
console.log(map.has('age')); // 输出: false

Map的常用方法

  • size: 获取Map中的键值对数量
  • has(key): 判断Map中是否存在某个键
  • clear(): 清空Map中的所有元素

Set数据结构

Set是ES6中新增的无序的集合,其内部元素的值是唯一的,即Set中不会包含重复的值。

创建Set

我们可以使用new Set()来创建一个空的Set对象。

let set = new Set();

此外,我们也可以通过一个数组来创建一个初始的Set对象。

let set = new Set([1, 2, 3]);

添加和获取元素

在Set中,我们可以使用add(value)方法来向Set中添加元素。

set.add(4);

使用has(value)方法可以判断Set中是否包含某个值。

console.log(set.has(3)); // 输出: true

遍历Set

可以使用for...of循环来遍历Set中的所有元素。

for(let value of set) {
    console.log(value);
}
// 输出:
// 1
// 2
// 3
// 4

删除元素

使用delete(value)方法可以从Set中删除指定的元素。

set.delete(2);
console.log(set.has(2)); // 输出: false

Set的常用方法

  • size: 获取Set中的元素数量
  • clear(): 清空Set中的所有元素

总结

ES6中的Map和Set数据结构提供了一种方便和高效的存储和操作数据的方式,同时也解决了一些特定的数据问题。通过了解和使用Map和Set,我们可以提高代码的可读性和性能。


全部评论: 0

    我有话说: