es6解读3:数据结构对比

作者: cd72c1240b33 | 来源:发表于2017-07-13 22:15 被阅读140次

    数据结构-和数组的对比

    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做存储; **

    相关文章

      网友评论

      本文标题:es6解读3:数据结构对比

      本文链接:https://www.haomeiwen.com/subject/vmvghxtx.html