一、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。
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号