美文网首页
(二)15.map-set与数组对象的比较19-08-12

(二)15.map-set与数组对象的比较19-08-12

作者: 你坤儿姐 | 来源:发表于2019-08-13 09:51 被阅读0次
    • map和数组的对比

    {
      //数据结构横向对比
      let map=new Map();
      let array=[];
      //增
      // map通过set给数据结构增加内容
      map.set('t',1);
      //数组是通过push
      array.push({t:1});
    
      console.info('map-array',map,array);
    
      //查
      //建一个变量表示存储,map提供一个has方法判断这个数据当前有没有这个数据项
      let map_exist=map.has('t'); //这里返回一个bool值
      //对于array是使用find
      let array_exist=array.find(item=>item.t);
      console.info('map-array',map_exist,array_exist);//这里如果存在就把这个对象返回回来
    
      // 改
      map.set('t',2);
      // 对于数组而言要用ForEach
      array.forEach(item=>item.t?item.t=2:'');
      console.info('map-array-modify',map,array);
    
      // 删除
      map.delete('t');
      let index=array.findIndex(item=>item.t);
      array.splice(index,1);
      console.info('map-array-empty',map,array);
    }
    

    打印结果:


    屏幕快照 2019-08-12 15.05.52.png
    • set和数组的对比

    {
      // 新建一个set数据结构和一个数组
      let set=new Set();
      let array=[];
    
      // 增
      set.add({t:1});
      array.push({t:1});
    
      console.info('set-array',set,array);
    
      // 查
      let set_exist=set.has({t:1});
      let array_exist=array.find(item=>item.t);
    
      console.info('set-array',set_exist,array_exist);
    
      // 改
      set.forEach(item=>item.t?item.t=2:'');
      array.forEach(item=>item.t?item.t=2:'');
      console.info('set-array-modify',set,array);
    
      // 删
      set.forEach(item=>item.t?set.delete(item):'');
      let index=array.findIndex(item=>item.t);
      array.splice(index,1);
      console.info('set-array-empty',set,array)
    }
    
    • map set Object对比

    {
      let item={t:1};
      let map=new Map();
      let set=new Set();
      let obj={};
    
      // 增
      map.set('t',1);
      set.add(item);
      obj['t']=1;
    
      console.info('map-set-obj',obj,map,set);
    
      // 查
      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.info('map-set-obj-modify',obj,map,set);
    
      //删
      map.delete('t');
      set.delete(item);
      delete obj['t'];
      console.info('map-set-obj-empty',obj,map,set);
    
    }
    

    打印结果:
    map-set-obj {t: 1} Map(1) {"t" => 1} Set(1) {{…}}
    {map_exist: true, set_exist: true, obj_exist: true}
    map-set-obj-modify {t: 2} Map(1) {"t" => 2} Set(1) {{…}}
    map-set-obj-empty {} Map(0) {} Set(0) {}

    相关文章

      网友评论

          本文标题:(二)15.map-set与数组对象的比较19-08-12

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