美文网首页
js之Set的使用

js之Set的使用

作者: 鸡毛菜菜子 | 来源:发表于2020-01-09 15:25 被阅读0次

1.对象定义的属性都会转换为字符串

2.使用对象作为键名时,会将对象转为字符串使用

通过 let set = new Set()方式来声明,然后我们就得到了一个set对象。Set属于严格类型约束,不会将属性自动转换位字符串。使用add添加元素,不允许添加重复值。

set用于存储任何类型的唯一值,无论是基本类型还是对象引用。获取元素数量使用.size;检测元素是否存在巴拉巴拉,使用.has('巴拉巴拉');删除元素使用.delete('巴拉巴拉');清除所有元素使用.clear();

通过Set()创建的是一个对象,可以使用点语法(…)或者是Array.from将其转化为数组,然后既可以使用数组处理函数了。

点语法方式和Array方式

应用场景:移除Set中大于5的数值

使用点语法遍历

可以利用Set的值是唯一的,对字符串或数组去重。

字符串去重 数组去重

遍历Set数据:使用 keys()/values()/entries() 都可以返回迭代对象,因为set类型只有值所以 keys与values 方法结果一致。也可以使用 forEach 遍历Set数据,也可以使用 forof 遍历Set数据,默认使用 values 方法创建迭代器。

WeakSet,WeakSet结构和Set一样不会存储重复的值,它的成员必须只能是对象类型的值。数据不是对象类型将产生错误。它的添加操作  、删除操作和检索判断和Set的一样。

WeakSet结构同样不会存储重复的值,它的成员必须只能是对象类型的值。

垃圾回收不考虑WeakSet,即被WeakSet引用时引用计数器不加一,所以对象不被引用时不管WeakSet是否在使用都将删除

因为WeakSet 是弱引用,由于其他地方操作成员可能会不存在,所以不可以进行forEach( )遍历等操作

也是因为弱引用,WeakSet 结构没有keys( ),values( ),entries( )等方法和size属性

因为是弱引用所以当外部引用删除时,希望自动删除数据时使用 WeakMap

当想要删除一个对象的引用指针时直接赋值为null

相关文章

网友评论

      本文标题:js之Set的使用

      本文链接:https://www.haomeiwen.com/subject/nnyyactx.html