Map


map对象与Object的区别:

  • 对象的 key 只能是 字符串或者symbol(原始数据类型),map的 key 可以是任何数据类型 包含对象与symbol类型
  • map中的键值对是有序的(先进先出),对象中的键值对是无序的
  • map中的键值对个数可以用 map.size;获取,但是在object中 只能够 人工手数
  • 对象都有自己的原型,原型链上的链名有可能和自己在对象上的属性名发生冲突

map set区别:

1.Map是键值对,Set是值的集合,当然键和值可以是任何的值;

2.Map可以通过get方法获取值,而set不能因为它只有值;

3.都能通过迭代器进行for...of遍历;

4.Set的值是唯一的可以做数组去重,Map由于没有格式限制,可以做数据存储

5.map和set都是stl中的关联容器,map以键值对的形式存储,key=value组成pair,是一组映射关系。set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序。 

map,set详解原文地址


 

map 对象的操作:

  • map 对象设值:map.set(key, value);
  • map 对象取值:map.get(key);
  • map 对象检索:map.has(key);    //  true 存在,fales ,不存在
  •  map 对象大小: map.size;
  • map 对象删除:map.delete(key);
  • map 对象清空:map.clear();
  • map.keys();   返回一个map对象由所有key 组成
  • map.values(); 返回一个map对象由所有value 组成
  • mao.entries(); 返回一个map对象 由所有 key => value 组成

set对象的操作:

  • set 对象设值:set.add( value);
  • set 对象检索:set.has(key);    //  true 存在,fales ,不存在
  • set 对象大小: set.size;
  • set 对象删除:set.delete(key);
  • set 对象清空:set.clear();
  • set .keys();   返回一个set对象由所有key 组成
  • set .values(); 返回一个set对象由所有value 组成
  • set .entries(); 返回一个set对象 由所有 key => value 组成

 

 


set 集合特点:

  1. 允许存储任意类型的唯一会,无论原始数据类型还是对象
  2. set 是集合,可以按插入的顺序迭代元素,每个元素只出现一次,即元素唯一
  3. NaN 和 undefined 都可以被存储在set 集合中,NaN 之间被视为相同的值 

set 、map 迭代 方式:

  • for (item of set){ } 
  • forEach(item index,arr) { } 
  • map用 forEach 迭代,ele,代表值,index,代表key
  • set的ele 和 index 相同,均为值

 

// map 对象
        let map = new Map();
        map.set(12, 123);
        map.set(5, 55);
        map.set(15, 55);
        map.set(51, 55);
        console.log(map.keys());
        console.log(map.values());
        console.log(map.entries());
      
    
      // set 对象
        let set = new Set();
        set.add(11);
        set.add(5);
        set.add(15);
        set.add(51);
        console.log(set.keys());
        console.log(set.values());
        console.log(set.entries());
        set.clear()
        console.log(set);

 

 

java中的Map对象值格式可以不同 map和对象_javascript

java中的Map对象值格式可以不同 map和对象_javascript_02

 

注意: 在 map 中所有的 key 唯一,同名key被覆盖 

注意:在map 、set 中 NaN 视为相同的值,尽管NaN === NaN 为false