Map是ES6提供的数据结构,它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。
属性和操作方法
1、size属性
返回Map结构数据的总条数;
var obj = new Map([['name', 'tom'], ['age', 12], ['sex', '男']]);
console.log(obj.size); //3
2、set(key, value)
set方法设置key所对应的键值,然后返回整个Map结构。如果key已经有值,则键值会被更新,否则就生成新的键。也可以采用链式写法。
//采用写法
var obj = new Map();
obj.set("age", 12); // 键是字符串
obj.set(0, "num"); // 键是数值
obj.set(undefined, "abc"); // 键是undefined
//链式写法
var map = new Map().set(1, 'a').set(2, 'b').set(3, 'c');
console.log(obj);
console.log(map);
3、get(key)
get方法读取key对应的键值,如果找不到key,返回undefined。
var obj = new Map();
obj.set("hello", '您好');
obj.get("hello"); //您好
obj.get("abc"); //undefined
4、has(key)
has方法返回一个布尔值,表示某个键是否在Map数据结构中。
var obj = new Map();
obj.set("hello", '您好');
obj.has("hello"); //true
obj.has("abc"); //fasle
5、delete(key)
delete方法删除某个键,返回true。如果删除失败,返回false。
var obj = new Map();
obj.set("hello", '您好');
obj.has("hello"); //true
console.log('删除hello', obj.delete("hello")); //true
console.log('删除abc', obj.delete("abc")); //false
obj.delete("hello")
obj.has("hello"); //fasle
6、clear()
clear方法清除所有数据,没有返回值。
var obj = new Map();
obj.set("hello", '您好');
obj.clear();
console.log(obj)