普通的object对象是键值对的集合,但对于它的键却有着严苛的要求,必须是字符串,这给我们平时带来很多的不方便

Map函数类似于对象,但它是一个更加完美的简直对集合,键可以是任意类型


  • set()方法可以向map实例对象中添加一组键值对
let a=new Map();
let key={name:"ww",sex:"man"};
a.set(key,'ABC');
console.log(a)//{{name:"ww",sex:"man"}=>"ABC"}

let b=new Map();
b.set('name','zhangsan');
console.log(b)//{'name'=>'zhangsan'}

  • get()方法可以向map对象获取一个属性值
let a=new Map();
let key={name:"ww",sex:"man"};
a.set(key,'ABC');
console.log(a.get(key))//'ABC'

  • has()方法检测map对象中是否存在某个属性,返回bool
  • delete()方法删除map对象中某个键,返回bool
let a=new Map();
let key={name:"ww",sex:"man"};
a.set(key,'ABC');
console.log(a.has(key))//true
a.delete(key);
console.log(a.has(key))//false

  •  Map()函数接受数组作为参数,最少必须是二维双数组,长度为2
let a=new Map([['name','wangwei'],['sex','man']]);
console.log(a)//{'name'=>'wangwei','sex'=>'man'}

let b=new Set([['a','A'],['b','B']]);
let c=new Map(b);
console.log(c)//{'a'=>'A','b'=>'B'}

  • Map()函数接受iterator接口,Map可以自己赋值,注意:不可以对象初始化Map
let b=new Set([['a','A'],['b','B']]);
let c=new Map(b);
let d=new Map(c);
console.log(d)

  • Map函数初始化,注意:数组引用必须相同才会覆盖
let a=['a','A'];
let b=['a','A'];
let c=new Map();
c.set(a,1);
c.set(b,2);
console.log(c.get(a),c.get(b))// 1 2

let a=['a','A'];
let b=a;
let c=new Map();
c.set(a,1);
c.set(b,2);
console.log(c.get(a),c.get(b))// 2 2

  • size属性获取map对象成员个数
  • clear()属性清除map对象的成员
  • forEach()遍历
  • keys()
  • entries()
  • values()
let a=new Map([[1,'a'],[2,'b'],[3,'c']]);
for(let i of a){console.log(i)
}
//[1,'a'],[2,'b'],[3,'c']
for(let i of a.keys()){console.log(i)
}//1 2 3
for(let i of a.values()){console.log(i)
}//a b c
for(let [key,value] of a.entries()){console.log(key,value)
}//1 'a'  2  'b'   3  'c'

  • Map转换为数组 方法 ...|...keys()|...values|...entries
let a=new Map([[1,'a'],[2,'b'],[3,'c']]);
let b=[...a];
console.log(b)//[[1,'a'],[2,'b'],[3,'c']]
let c=[...a.keys()];
console.log(c)//[1,2,3]
let d=[...a.values()];
console.log(d);//["a", "b", "c"]
let e=[...a.entries()];
console.log(e);//[[1,'a'],[2,'b'],[3,'c']]

  •  Map对象转换为对象,注意:Map的键必须全部是字符串
let a=new Map([['a','A'],['b','B'],['c','C']]);
let b={};
for(let [key,value] of a){b[key]=value
}
console.log(b)//{a: "A", b: "B", c: "C"}

  • 对象转换为Map
let a=new Map();
let b={a: "A", b: "B", c: "C"};
for(let i in b){a.set(i,b[i])
}
console.log(a)//{"a" => "A", "b" => "B", "c" => "C"}

  • JSON转对象,可以先转换为数组或者对象再转换为map
  • weakMap()键必须是对象

转载于:https://www.cnblogs.com/douyaer/p/7942974.html

es6的Map()构造函数相关推荐

  1. ES6中 Map 数据结构

    ES6新增了 Map数据结构,Map对象保存键值对,任何值(原始值或对象)都可以作为一个键或一个值. 基本用法 let map = new Map(); let obj = {name: 'Leon' ...

  2. es6通过Map对象对数组去重

    关于js数组去重的方法有很多,我以前居然用的是嵌套两层for循环来加一层if来判断数组里面的重复数据,当我了解了es的方法之后,才发现我的方法是有多蠢(笑哭). 首先关于数组去重我们先简单介绍一下es ...

  3. js用map筛选指定元素(ES6的map方法)

    1.js用map筛选指定元素 let arr = [1,2,3] //如果条件是true,就加入新newArr中 let newArr = arr.filter(item => item> ...

  4. es6 forEach/map循环中断

    1.for循环在循环的时候 通过continue中断当次循环 通过break中断整个循环 通过retrun中断函数执行 2.es6的forEach/map循环只能通过return中断当次循环 //目的 ...

  5. c语言 map 构造函数,map函数,map函数的作用

    map不是函数,是一个对象 可以Mapmap=newHashMap();创建 Map就是键值对, map.put("1","123"); map.put(&qu ...

  6. es6的map()方法解释

    map方法的作用不难理解,即"映射",也就是原数组被"映射"成对应新数组.下面这个例子是数值项求平方: var data = [1, 2, 3, 4];var ...

  7. ES6中Map与对象、数组,JSON之间的相互转换

    Map转为数组 const map = new Map(); map.set(1,"foo").set(2,"bar").set(3,"baz&quo ...

  8. ES6新增Promise构造函数

    文章目录 有关ES6中Promise的理解 1.Promise的含义? 2.如何创建一个Promise对像? 3.Promise对像的三种状态? 4.thenable 对象是什么? 5.有关Promi ...

  9. ES6 Map数据结构

    Map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. ES6 提供了 Map 数据结构.它类似于对 ...

最新文章

  1. linux怎么注册信息,linux device注册
  2. 影响堪比登月!谷歌等设计DL新方式让神经网络无限深无限窄
  3. 拆解一个舵机组成的机器人
  4. 为什么百度首页的HTML源代码最后一行要多一行?浪费空间呀!
  5. 人工智能到来的时代,你曾经瞧不起的职业,可能会非常吃香!
  6. 《图解HTTP》读书笔记--第3章HTTP报文内的HTTP信息
  7. SAPMMC控制台服务消失的解决方法
  8. mysql online ddl和pt_online ddl与pt-osc详解
  9. CentOS 搭建Postfix+Dovecot简单邮件系统
  10. Java常用类集接口以及实现方式总结
  11. ubantu的下载和在虚拟机VM中的安装
  12. 小tip: 使用CSS将图片转换成黑白(灰色、置灰)[转]
  13. java第十四次作业
  14. windows 2013 datacenter 安装sql server2008 r2兼容性
  15. VMware之虚拟机迁移
  16. vue-cli创建项目实例
  17. 已知三点坐标,求外接圆圆心坐标与半径。
  18. 物联网的应用涉及生活的方方面面,在这里介绍一下物联网的多种应用场景
  19. 作战管理系统:现代化作战体系核心
  20. 概率统计Python计算:贝叶斯公式

热门文章

  1. c mysql二进制,MySQL运用connector C/C+读取二进制字段
  2. 10个职场故事,让人不得不看
  3. 新唐M031学习笔记(一)定时器基础计数应用
  4. Windows使用筛选器来处理异常
  5. 计算机专业女兵,陈豪2010《点解阿Sir》剧照
  6. 后台系统可扩展性学习笔记
  7. 加载一张照片,可选择是否另存为
  8. mysql 关联查询_Mysql查询优化器,再也不会因为该什么时候建立索引发愁了
  9. linux重启后root密码错误,Linux技巧| 解决Debian Root密码忘记的问题
  10. 22. 括号生成 golang 图解