zoukankan      html  css  js  c++  java
  • Set,Map与Array,Object对比

    Map与Array

    数据结构横向对比,用Map和Array分别实现最基本的增删改查;

    //增

    {
    let theMap=new Map();
    let theArray=[];
    theMap.set('t',1);
    theArray.push({t:1});
    console.log(theMap);     //Map(1) {"t" => 1}
    console.log(theArray);   //[{t:1}]
    } 

    //删

    theMap.delete('t');
    let index=theArray.findIndex(item=>item.t);
    theArray.splice(index,1);

    //改

    theMap.set('t',2);
    let index=theArray.findIndex(item=>item.t);
    theArray[index]={t:2};
    //或者
    theArray.foreach(item=>item.t?item.t=2:'');

    //查

    theMap.has('t');
    theArray.find(item=>item.t);

    总体来说,Map的操作更方便简洁一些。

    Set与Array

    数据结构横向对比,用Map和Array分别实现最基本的增删改查;

    //增

    {
    let theSet=new Set();
    let theArray=[];
    theSet.add({t:1});
    theArray.push({t:1});
    console.log(theSet);     //{{t:1}}
    console.log(theArray);   //[{t:1}]
    } 

    //删

    theSet.forEach(item=>item.t?theSet.delete(item):'');
    //因为保存的是对象,是引用类型,不能直接通过delete删除,需要用这种方法 
    let index=theArray.findIndex(item=>item.t);
    theArray.splice(index,1);

    //改

    theSet.forEach(item=>item.t?item.t=2:'');
    //因为保存的是对象,是引用类型,不能通过add改,需要用这种方法    
    theAarray.forEach(item=>item.t?item.t=2:'');

    //查

      let set_exist=theSet.forEach(item=>item.t);  
    //因为保存的是对象,是引用类型,通过has查不到,需要用这种方法      
      let array_exist=theArray.find(item=>item.t);

    总体来说,Set储存对象,相对于数组没有明显优势。

    Map,Set与Array

    {
    //因为Set遍历不到对象,所以把对象赋值
      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(obj,map,set);
    
      // 删除
      map.delete('t');
      set.delete(item);
      delete obj['t'];
      console.info(obj,map,set);
    
      //
      map.set('t',2);
      item.t=2;
      obj['t']=2;
      console.info(obj,map,set);
    
      //
      console.info({
        map.has('t'),
        set.has(item),
        't' in obj
      })
    }

    Map最好用,Set唯一性较好

  • 相关阅读:
    Sample XPS Documents Download
    触发器中的inserted表和deleted表
    Using freewheel.labs.autodesk.com to auto generate preview images of DWF files on your web site
    解除SQL对组件"Ad Hoc Distributed Queries"的"STATEMENT'OpenRowset OpenDatasource"的访问
    读写xps
    XPS文件,在Windows XP下的打开查看阅读和打印方法。
    Learning to Reference Inserted and Deleted Tables
    Get value from updated, inserted and deleted
    Reinstall Microsoft Helper Viewer
    如何查找文件的IFilter
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/9134484.html
Copyright © 2011-2022 走看看