ES6的Map数据结构
ES6提供了Map数据结构。它类似于对象,也是键值对的集合。但是“键”的范围不限于字符串,各种类型的值〈包括对象)都可以当作键。Map也实现了iterator接口,所以可以使用「…扩展运算符』和「for …of…』进行遍历。
声明一个Map数据结构:
let m = new Map();
Map的属性和方法:
1) set增加一个新元素,返回当前Map
2) size返回Map的元素个数
3) get返回键名对象的键值
4) has检测Map中是否包含某个元素,返回boolean值
5)delete删除 指定的元素
6) clear清空集合,返回undefined
7)for…of…遍历
set方法添加元素:
//声明一个Map
let m = new Map();
// 为Map添加元素
m.set('name','张三');
m.set('age','18');
console.log(m); // {'name' => '张三', 'age' => 18}
size属性返回Map的元素个数:
//声明一个Map
let m = new Map();
// 为Map添加元素
m.set('name','张三');
m.set('age','18');
console.log(m.size); // 返回 2
get方法返回Map键名对象的键值:
//声明一个Map
let m = new Map();
// 为Map添加元素
m.set('name','张三');
m.set('age','18');
console.log(m.get('name')); // 返回 张三
has方法检测Map中是否包含某个元素,返回boolean值:
//声明一个Map
let m = new Map();
// 为Map添加元素
m.set('name','张三');
m.set('age','18');
console.log(m.has('name')); // 返回 true
console.log(m.has('sex')); // 返回 false
delete方法删除指定的元素:
//声明一个Map
let m = new Map();
// 为Map添加元素
m.set('name','张三');
m.set('age','18');
console.log(m.size); // 2
m.delete('name');
console.log(m.size); // 1
clear方法清空所有:
//声明一个Map
let m = new Map();
// 为Map添加元素
m.set('name','张三');
m.set('age','18');
console.log(m.size); // 2
m.clear();
console.log(m.size); // 0
for…of…遍历:
//声明一个Map
let m = new Map();
// 为Map添加元素
m.set('name','张三');
m.set('age','18');
for (let v of mm) {
// ['name', '张三']
// ['age', 18]
console.log(v);
}
更多可以参考 http://caibaojian.com/es6/set-map.html