js的Map数据类型
与对象相似,Map也是由一组键值对生成的集合,但是Map的key除了采用字符串还可以采用其它的类型。那么,要如何构造一个Map对象呢?
Map构造
可以初始化构建一个空的Map对象,再添加键值对
var map = new Map(); map.set("name","zhangsan"); map.set("age",40);
也可以直接用一个二维数组构造一个Map对象,如:
var map = new Map([["name","wangqiang"],["age",40],["city","guangzhou"]])
get()
get方法可以通过给定的键,查询到Map的值
var map = new Map([["name","wangqiang"],["age",40],["city","guangzhou"]]); map.get("age") //返回40 map.get("name") //返回wangqiang
set()
set方法可以向map中添加一个键值对,如果map中键已经存在,则修改该键的值。
var map = new Map([["name","wangqiang"],["age",40],["city","guangzhou"]]); map.set("age",38); map.set("address","tianhe guangzhou"); for (let item of map){ console.log(item[0],":",item[1]); //遍历可以看到添加的键值对 }
delete()
delete方法可以通过给定的键,删除掉map的值
var map = new Map([["name","wangqiang"],["age",40],["city","guangzhou"]]); map.delete("age")
has()
has方法可以查询给定的键是否存在
var map = new Map([["name","wangqiang"],["age",40],["city","guangzhou"]]); map.delete("age") map.has("age") // false;
map的遍历
map是可迭代的,通过for(...of...){...}可以对map的键值进行遍历
var map = new Map([["name","wangqiang"],["age",40],["city","guangzhou"],["address","tianhe"]]); for (let item of map){ console.log(item[0],item[1]); }
除了通过上面提到的for(... of ...){...}循环进行遍历,还可以使用map的迭代器进行遍历
var map = new Map([["name","wangqiang"],["age",40],["city","guangzhou"],["address","tianhe"]]); var entries = map.entries(); //获取一个迭代器 for (;;){ let entry = entries.next(); //迭代 if (entry.done){ //迭代是否完成 break; } console.log(entry.value[0],":",entry.value[1]); }
clear()
clear方法清空map的键值对
var map = new Map([["name","wangqiang"],["age",40],["city","guangzhou"]]); map.clear(); map.size(); //0
文章同时发表在:码农编程网 欢迎访问
本节重点:
- map对象的构造介绍;
- map对象常见方法和属性的使用;
- map对象的遍历。
本文来自博客园,作者:崎岖行者,转载请注明原文链接:https://www.cnblogs.com/qqxz/p/17511750.html