ES6--set和map

91 阅读1分钟

set

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

Set 对象存储的值总是唯一的,所以需要判断两个值是否恒等。有几个特殊值需要特殊对待:

  • +0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;
  • undefined 与 undefined 是恒等的,所以不重复;
  • NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复。

利用set()方法值的唯一性可以进行数组的去重

image.png

set对象的方法

add( ) 添加新项

image.png

也可以采用链式语法

image.png

delete( ) 删除某一项

image.png

has() 判断有没有某个元素

image.png

size 元素的个数

image.png

clear() 清空

image.png

set对象的遍历

image.png

WeakSet()

new WeakSet({})存储 json
WeakSet 没有 size,也没有 clear()
有, add(), has(), delete()

image.png

Map()

类似 json,有 key 和 value 但是 json 的键(key)只能是字符串
map 与 json 很类型,但 map 的 key 可以是任意类型

  • map.set(key,value); 设置一个值
  • map.get(key) 获取一个值
  • map.delete(key) 删除一项
  • map.has(key) 判断有没有
  • map.clear() 清空

image.png

WeakMap()

key 只能是对象
具有的方法有:has()、set()、delete()没有 size、clear()

image.png