map对象是以键值对的形式保存数据的,是一种键值对的集合,同时也能记住键的原始插入顺序。
构造函数
通过new Map()创建Map对象
let map = new Map()
静态属性
Map[Symbol.species],用于创建派生对象的构造函数
实例属性
实例属性是在Map.prototype 上定义的,同时所有的Map实例都可以共享
Map.prototype.size返回Map对象中键值对的数量
const map1=new Map()
map1.set('a',1);
map1.set('b',2);
map1.set('c',3);
map1.set('d',4);
map1.set('e',5);
console.log(map1.size)
//输出 5
实例方法
-
Map.prototype.clear()该方法用于移出Map对象中的所有键值对
const map1 = new Map(); map1.set('bar', 'baz'); map1.set(1, 'foo'); console.log(map1.size); //输出 2 map1.clear(); console.log(map1.size); // 输出 0
-
Map.prototype.delete()该方法从Map中删除指定键的元素
const map1 = new Map(); map1.set('bar', 'foo'); console.log(map1.delete('bar')); // 输出 true console.log(map1.has('bar')); // 输出为 false
-
Map.prototype.get()返回map中指定的元素
const map1 = new Map(); map1.set(1, 'a'); map1.set(2, 'b'); map1.set(3, 'c'); console.log(map1.get(1)); // 输出 a console.log(map1.get(4)); //输出 undefined
-
Map.prototype.has()指定键的元素是否存在,返回的是布尔值
const map1 = new Map(); map1.set(1, 'a'); console.log(map1.has(1)); //输出 true console.log(map1.has(2)); // 输出 false
-
Map.prototype.set()向map对象,添加或更新一个指定的键值对
-
Map.prototype.values()返回一个新的map对象,新的对象包含原map中每个元素的值
const map1 = new Map(); map1.set('0', 'foo'); map1.set(1, 'bar'); const iterator1 = map1.values(); console.log(iterator1.next().value); // 输出"foo" console.log(iterator1.next().value); //输出"bar"
-
Map.prototypeSymbol.iterator]()返回一个map迭代器对象,会按照插入顺序生成map的键值对
const map1 = new Map(); map1.set(0, 'a'); map1.set(1, 'b'); const iterator1 = map1[Symbol.iterator](); for (const item of iterator1) { console.log(item); } //输出 Array [0, "a"] //输出 Array [1, "b"]