Object和Map比较

  • Object和Map,Map似Object(都存储键值对集合),但又有区别。
  • 适用场景
Object:仅做数据存储,属性仅为string、Symbol;需要转为json传输;
Map   :会频繁更新或删除k-v;存储大量数据且key不知;频繁进行迭代处理
  • Object
const obj={a:1 , b:2};//定义
obj.c = 3;//添加key-val
delete obj.c;//删除k-v
  • Map常用方法,有了Object为啥又有Map。
let mm=new Map();
mm.set(1,'a');//添加属性(不会把key强制转string)
mm.set('ab','aaaa'); 
mm.keys()//所有属性名
mm.values()//所有值
mm.has('ab')//是否存在属性1
mm.get('ab')//取值
mm.delete('ab')//删除
mm.clear()//清空
for(let k of mm){//Map可用。Object无iterator特性,无法使用for-of 
}
for(let [k,v] of mm.entries()){
	console.log(k,v);
}
JSON.stringify(mm);//仅返回{}
JSON.stringify(Array.from(mm))//返回:[[1,"a"],[12,"bb"],["ab","aaaa"]]

posted on 2023-05-05 20:19  anjun_xf  阅读(27)  评论(0编辑  收藏  举报

导航

TOP