Javascript(笔记40) - ES6特性 - Map


Map 

ES6 提供了Map数据结构。它类似于对象,也是键值对集合。但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。

Map也实现了 Iterator 接口,所以可以使用“扩展运算符”和"for...of"进行遍历。 

Map的属性和方法:

size :返回Map的无素个数;

set :增加一个新元素,返回当前 Map;

get :返回键名对象的键值;

has :检测Map中是否包含某个元素,返回 boolean 值;

clear: 清空集合,返回 undefined; 


创建一个空 map

let m = new Map();

添加元素:set

m.set('name','Jacky');
m.set('trait',function(){ // 放一个函数
console.log('i can sing.');
});
m.set('say',()=>{ // 放一个箭头函数
console.log('hello javascript');
});
m.set({'city':"Urumchi"},['ts','sybk','xs','smg']); // 放一个对象当键名,当一个数组做键值;
let s1 = new Set(['language','math','physics','chemistry']); // 放一个集合;
m.set('science',s1);

Javascript(笔记40) - ES6特性 - Map_ES6

什么类型的数据都能放;

元素个数:size

console.log(m.size);    // 5

删除元素:delete

删除有的元素,返回 true,删除不存在的,返回 false; 

m.delete('name');
console.log(m);

获取元素:get

console.log(m.get('trait'));

清空元素:clear

m.clear();
console.log(m);

遍历map: for...of

for(let v of m){
console.log(v);
}

Javascript(笔记40) - ES6特性 - Map_Map_02

每个元素是个数组,第一个元素是键,第二个元素是值;

Map 是个升级版的对象;