在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,我们可以提高代码的可读性和性能。
本文来自极简博客,作者:碧海潮生,转载请注明原文链接:ES6中的Map和Set数据结构