es6解读3:数据结构对比

数据结构-和数组的对比

Map与Array的对比,从增删改查出发

//数据结构横向对比,增,查,改,删
let map=new Map();
let ary=[];
//增
map.set('t',1);
ary.push({t:1});
//console.info('map-array',map,ary)
//查
let map_exits=map.has('t');
let ary_exites=ary.find(item=>item.t);
/*console.log(map_exits)  //返回true,表示存在
console.log(ary_exites) //返回当前对象*/
//改
map.set('t',2);
ary.forEach(item=>item.t?item.t=2:'');
console.log(map,ary)
//删除
map.delete('t');
let index=ary.findIndex(item=>item.t);
ary.splice(index,1);
console.log(map,ary)

Set与Array的对比

let set=new Set();
let ary=[];
let item={t:1};
//增加
set.add(item);
ary.push({t:1})
console.log(set,ary)
//查
let set_exist=set.has(item);
let ary_exist=ary.find(item=>item.t)
console.log(set_exist,ary_exist)
//改
set.forEach(item=>item.t?item.t=2:'');
ary.forEach(item=>item.t?item.t=2:'');
//删
set.forEach(item=>item.t?set.delete(item):'');
let index=ary.findIndex(item=>item.t)
ary.splice(index,1)
console.log(set,ary)

数据结构- 和对象Object的对比

Map,Set与Object的对比

//map,set,object对比
let item={t:1};
let set=new Set();
let map=new Map();
let obj={};
//增
map.set('t',1);
set.add(item);
obj['t']=1;
console.log('map-set-obj',map,set,obj)

//查
console.info({
    map_exist:map.has('t'),
    set_exist:set.has(item),
    obj_exist:'t' in obj
})
//改
map.set('t',2);
item.t=2;
obj['t']=2;
console.log('map-set-obj',map,set,obj)
//删
map.delete('t')
set.delete(item)
delete obj['t'];
console.log('map-set-obj',map,set,obj)

** 小总结:数据开发中,涉及数据结构,能使用map,不使用数组;如果对数据要求比较高,比如数据唯一性,考虑使用set放弃object做存储; **

    原文作者:张蕾_
    原文地址: https://www.jianshu.com/p/b6513529cda1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞