Object和Map比较

发布时间 2023-05-05 20:22:18作者: anjun_xf
  • Object和Map,Map似Object(都存储键值对集合),但又有区别。
  • 适用场景
Object:仅做数据存储,属性仅为string、Symbol;需要转为json传输;
Map   :会频繁更新或删除k-v;存储大量数据且key不知;频繁进行迭代处理
  • 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"]]