zoukankan      html  css  js  c++  java
  • JavaScript(ES6)学习笔记-Set和Map与数组和对象的比较(二)

    一、Map,Set,Array对比:

    1、增

        let map = new Map();
        let set = new Set();
        let array = [];
    
        map.set('t',1); //Map
        set.add({t:1}); //Set
        array.push({t:1});//数组
        console.info('set-map-array',set,map,array);

    2、查

       let map_exist = map.has('t');
        let set_exist = set.has({t:1});
        let array_exist = array.find(item=>item.t)
        console.info('map-set-array',map_exist,set_exist,array_exist);
    //true(返回布尔值) false  返回的是查找的值

    3、改

       map.set('t',2);
        set.forEach(item=>item.t?item.t=2:'');//set 修改也是通过forEach
        array.forEach(item=>item.t?item.t=2:'');
        console.info('map-set-array-modify',map,set,array);

    4、删除

       map.delete('t');
        set.forEach(item=>item.t?set.delete(item):'');//set删除也是通过forEach
        let index = array.findIndex(item=>item.t);
        array.splice(index,1);
        console.info('map-set-array-modify',map,set,array);

    二、Map、Set、Object对比:

    1、新增

        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-ogj',map,set,obj)        

    2、查找

    console.info({
            map_exist:map.has('t'),
            set_exist:set.has(item),
            obj_exist:'t' in obj
        })

    3、修改

    map.set('t',2);
    item.t = 2; //直接修改item
    obj['t'] = 2;
    console.info('map-set-obj-modify',map,set,obj)

    4、删除

    map.delete('t');
    set.delete(item);
    delete(obj.t)
    console.info('map-set-obj-empty',map,set,obj)

    Map成本低,Set如果在使用过程中没有对数据做一份引用的话,就要通过forEach删除,优先使用Map,如果对数据结构要求存储的唯一性比较高使用Set,放弃使用数组和object。

  • 相关阅读:
    初探CSS
    初探CSS -3 语法
    初探 -1 JavaScript
    初探html-17 表单
    初探html-9 链接
    python 发送邮件
    检查xml文件
    python文件和目录操作方法大全(含实例)
    使用ADB无线连接Android真机进行调试
    安卓APP应用在各大应用市场上架方法整理
  • 原文地址:https://www.cnblogs.com/qiu-Ann/p/8257167.html
Copyright © 2011-2022 走看看