普通的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()键必须是对象

最新文章

  1. 将RichTextBox的内容直接写入数据库:
  2. WCF在编译出现 “错误 3 命令“时解决
  3. RxJava 和 RxAndroid 五(线程调度)
  4. Duilib实现GroupBox控件
  5. Building Tomcat7 source step by step---官方文档
  6. Jmeter软件测试1--webservice测试
  7. spring mvc 提交表单的例子
  8. koahub软件市场微信编辑器源码,可下载
  9. sqlserver 重置标识列
  10. 一.初识java
  11. DLL 破解工具
  12. Java之Java7新特性之try资源句式
  13. Exp4 恶意代码分析 20164313 杜桂鑫
  14. LCA的两种写法
  15. web前端中navigator
  16. 软件工程APP进度更新
  17. CF603E Pastoral Oddities
  18. android studio 添加get,set方法快捷方式
  19. java与js交互,相互调用传参
  20. Cannot load JDBC driver class 'oracle.jdbc.OracleDriver'

热门文章

  1. 题解【bzoj2440 [中山市选2011]完全平方数】
  2. js 时间戳 转化
  3. php数组定义
  4. Codeforces 803E - Roma and Poker
  5. Hive ORC表的使用
  6. Class类和ClassLoader类的简单介绍
  7. Mysql储存过程5: while
  8. imperva agent 的重新注册
  9. MongoDB之python简单交互(三)
  10. 76.ZYNQ-用PS控制DDR3内存读写