实现增、查、改、删功能
(1)Map与Array的对比
//数据结构的横向对比----增、查、改、删
letmap=newMap();
letarray=[];
//增
map.set('t',1);
array.push({t:1});
console.info('map-array',map,array);
//查
letmap_exist=map.has('t');
letarray_exist=array.find(item=>item.t);
console.info('map_exist-array_exist',map_exist,array_exist);
//改
map.set('t',2);
array.forEach(item=>item.t?item.t=2:'');
console.info('map_set-array_forEach',map,array);
//删
map.delete('t');
letindex=array.findIndex(item=>item.t);//先找到要删除元素的索引值
array.splice(index,1);//利用splice()进行对元素的删除
console.info('map_delete-array_splice',map,array);
(2)Set与Array的对比
letset=newSet();
letarray=[];
//增
set.add({t:1});
array.push({t:1});
console.log(set,array);
//查
letset_exist=set.has({t:1});//返回false,如果想返回true,则里面的元素必须是要被保存过,通过地址就可以查询到
letarray_exist=array.find(item=>item.t);
console.info('set_exist-array_exist',set_exist,array_exist);
//改
set.forEach(item=>item.t?item.t=2:'');
array.forEach(item=>item.t?item.t=2:'');
console.info('set_forEach-array_forEach',set,array);
//删
set.forEach(item=>item.t?set.delete(item):'');
letindex=array.findIndex(item=>item.t);//先找到要删除元素的索引值
array.splice(index,1);//利用splice()进行对元素的删除
console.info('map_forEach-array_splice',set,array);
(3)Map、Set、Object的对比
//Map,Set,Object对比
letitem={t:1};//提前为set的元素进行了存储
letmap=newMap();
letset=newSet();
letobj={};
//增
map.set('t',1);
set.add(item);
obj['t']=1;
console.info(map,set,obj);
//查
letmap_exist=map.has('t');
letset_exist=set.has(item);
letobj_exist='t'inobj;
console.info(map_exist,set_exist,obj_exist);
//改
map.set('t',2);
item.t=2;//提前
//set.forEach(item=>item.t?item.t=2:'');//未提前
obj['t']=2;
console.info(map,set,obj);
//删
map.delete('t');
set.delete(item);//提前
//set.forEach(item=>item.t?set.delete(item):'');//未提前
deleteobj['t'];
console.info(map,set,obj);
(4)使用优先级
优先使用Map和Set
能使用Map就不使用数组
要求数据唯一性,考虑使用Set,放弃使用Object,数组