ES6中的Map结构循环方法
在ES6之前,我们常常需要使用对象来表示一些数据结构。但是,随着JavaScript的发展,Map结构被引入到了ECMAScript6中,使用它来表示对象可以带来很多好处。本文将详细介绍ES6中使用Map结构的循环方法。
一、什么是Map结构
Map结构是一种以键值对为元素的集合,可以用于存储任意类型的值。Map结构可以通过set()方法设置键值对,通过get()方法获取对应的值。下面是一个简单的例子:
```
let map = new Map();
map.set('name', 'Tom');
map.set('age', 18);
console.log(map.get('name')); // Tom
console.log(map.get('age')); // 18
```
二、Map结构的循环方法
1. for...of循环
我们可以通过for...of循环遍历Map结构,它会依次返回每个键值对的键和值。例如:
```
let map = new Map([
['name', 'Tom'],
['age', 18]
]);
for(let [key, value] of map){
console.log(key + ':' + value);
}
// name:Tom
// age:18
```
2. forEach()方法
Map结构中也可以使用forEach()方法进行遍历。与数组的forEach()方法类似,它可以传入一个回调函数,函数参数分别为值、键和Map本身。例如:
```
let map = new Map([
['name', 'Tom'],
['age', 18]
]);
map.forEach(function(value, key, map){
console.log(key + ':' + value);
});
// name:Tom
// age:18
```
需要注意的是,forEach()方法执行的时候,回调函数内部的this值指向的是当前Map对象。
3. 扩展运算符
使用扩展运算符(...)可以将Map结构转化为数组,然后就可以使用数组的forEach()方法进行遍历了。例如:
```
let map = new Map([
['name', 'Tom'],
['age', 18]
]);
[...map].forEach(function([key, value]){
console.log(key + ':' + value);
});
// name:Tom
// age:18
```
三、Map结构的优点
1. 键可以是任意类型
在对象中,键只能是字符串类型。但是在Map结构中,键可以是任意类型,例如数字、对象、甚至是函数等。这给我们带来了更大的灵活性。
2. Map结构中可以直接获取长度
在对象中,要获取属性的数量需要使用Object.keys()或Object.getOwnPropertyNames()等方法。但是在Map结构中,直接使用size属性即可获取集合的长度。
3. Map结构内置迭代器
Map结构内置了迭代器相关方法,方便我们遍历集合。除了上述提到的方法,Map结构中还有一些其他的迭代器方法,如keys()、values()和entries()等。
微信扫一扫,领取最新备考资料