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对象的遍历。

posted on 2023-06-28 16:17  崎岖行者  阅读(155)  评论(0编辑  收藏  举报

导航