es6——内置对象{}Map、Set

144 阅读2分钟

Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。(二维键值对数组)

key:键值名

value:值

属性:

  1. set(键名,对应的值):设置键值对;
    
  2.  get(键名):取出键名对应的值
    
  3.  entries():返回一个新的Iterator 对象,它按插入顺序包含了 Map 对象中每个元素的 [key, value] 数组。
    
  4.  keys():返回一个新的 Iterator 对象, 它按插入顺序包含了 Map 对象中每个元素的键。
    
  5.  values():返回一个新的 Iterator 对象,它按插入顺序包含了 Map 对象中每个元素的值。
    
  6. 如果想要得到Map的键值对个数可以从size属性获取
    
  7. delete(键名),返回值是布尔值,删除指定键名的元素。
    
  8. clear(),清空所有数据
    
  9. has():用于查找键名。
    

image.png

image.png

Map的迭代:对Map进行遍历

1.for of:例:

for (var [key,value] of myMap){
   console.loog.log(key+"="+value)
}

2.forEach():例:

 myMap.forEach(function(value,key){
    console.log(key+"="+value)};
    myMap)

Map对象的操作:

1.Map与Array的转换

  1. 转为数组:Array.from(Map对象)
  2. 转为Map:new Map(二维键值对数组) image.png

image.png

2.Map的合并:

注意:这里的[]必须是两个;

补充:... 展开运算符:ES6中可以使用展开运算符将数组或对象里面的值展开;还可以将多个值收集为一个变量;

image.png

image.png

Set对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用

定义:Set对象存储的值总是唯一的(也就是Set中两个值不能恒等),需要注意的是:

+0===-0undefined===undefined;

NaN!==NaN(虽然这两个值不恒等,但是在Set中只能存一个,不能重复)

image.png image.png

属性:

  • has()方法:用于查找值

  • add()方法:添加值

  • 如果想要得到Map的键值对个数可以从size属性获取

类型转换:

数组:

1.Array转Set:new Set(数组)

2.Set转Array:[...Set对象]

字符串:

1.String转Set:new Set(字符串) 2.Set转数组:Array.from(Set)

注意:Set中toString方法是不能将Set转换成String

Set对象的作用:

1.数组去重:(原理:Set对象存储任何对象的唯一值)

image.png

image.png

2.并集:

image.png

image.png

3.交集:

image.png

image.png

4.差集:

image.png

image.png