Es6 Set和Map

2023-07-11 09:09:1303:31 1558
所属专辑:javascript面试题
声音简介

Set

ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。

var set = new Set();
var set = new Set([1, 2, 3, 4, 4]);

5个操作方法:

add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值
 forEach(): set.forEach(function (value,key,ownerSet) {
     console.log(value);
     console.log(key);           
 })

weakset
WeakSet结构与Set类似,也是不重复的值的集合。
WeakSet和Set的区别:

WeakSet的成员只能是对象,而不能是其他类型的值
WeakSet中的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说,
如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象所占用的内存,不考虑该对象还存在于WeakSet之中。
这个特点意味着,无法引用WeakSet的成员,因此WeakSet是不可遍历的。

Map
Map结构是一种Hash结构。如果你需要“键值对”的数据结构,
Map比Object更合适。它类似于对象,也是键值对的集合,
但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。

let map = new Map([['title','hello world'],['year','2018']]);
var m = new Map();

set()方法可以给Map添加键值对
get()方法可以从Map中提取值
has(),
delete()以及
clear()方法
forEach


Weak Map对Map而言,就像是Weak Set相对于Set一样:Weak Map是存储对象弱引用的方式,
在Weak Map中,所有的键都必须是对象(尝试使用非对象的键会抛出错误),
而且这些对象都是弱引用,不会干扰到垃圾回收。当Weak Map中的键在Weak Map之外不存在引用时,该键值对会被移除。

用户评论

表情0/300
喵,没有找到相关结果~
暂时没有评论,下载喜马拉雅与主播互动
音频列表
猜你喜欢
各大神SET

各大神SET集合都是实用的!

by:dj小强

Ready Set Raymond

关注微信公众号:shmothergoose,获取兰登配套视频

by:鹅妈妈英语启蒙

Set Point-Software&Tools

Aninfectiousfusionofcatchymelodiesandhypnoticbeats,thiselectrogemwil...

by:情迷电音