当前位置: 首页 > 网络应用技术

JavaScript中的集合和映射类的奥秘是什么?

时间:2023-03-09 10:51:25 网络应用技术

  该集合是一组值,类似于数组,但是没有索引或顺序,不允许重复。

  添加()将元素添加到集合中。如果添加了数组,则添加一个数组,而不是数组var num = [1,2] s.Add(num // [1,2,3,“ 4”,[1,2])的元素)尺寸集合元素5DELETE()删除元素,use === set中的判断,删除数组和对象,必须为参考,返回到布尔值,删除成功或不删除var tmp = [1,2] s.delete(tmp) / s.delete(tmp) // falses.delete(num)// trueentries()返回一个新的迭代对象,包括以set中插入顺序排列的所有元素的值数组。/结果请参见下图以确定元素是否在集合中s.has(1)// trueclear()to gathers s.clear()//

  为会员设置了专门优化的。无论有多少成员,has()方法都非常快。数组包含的数组还可以确定该元素是否在数组中,但是执行速度与数组的大小成反比。

  设置构建 - 在迭代中,您可以使用/枚举所有元素,您可以使用...扩展运算符会将集合转换为数组或参数

  JavaScript中的集合没有索引,也不能通过一系列招标来拿出价值,但是该集合并非绝对无序。当循环枚举时,遍历元素的顺序是添加集合的顺序。

  除迭代外,SET类还实现了类似于数组的foreach方法。

  地图对象表示一组称为键的值。键值映射,映射类似于数组,映射速度快速,数组的索引快速,并且任何值都可以作为“索引”。任何JS值都可以用作键。

  构造函数的参数必须是迭代对象。

  get()获取值m.get(“一个)// 1 size元素数量2set()添加/修改键值为m.set(“三”,3)m.set(“一个”,111)是否存在是键M.Has(“四个”)//通过钥匙删除M.Delete(“一个”)clear()的键值()

  链呼叫:M.SET(“一个”,1).set(“两个”,2).set(“三”,3)

  基于数组/对象作为键,m.set({},1).set({},2)// m.size => 2,这两个对象的引用可以用作不同的键。.get({})=>未定义,因为{}不在密钥中

  M.Set(m,未定义)//将映射本身映射到未定义的情况下,结果如下图所示

  在迭代中构建的地图,迭代的每个元素都是一个带有两个元素的数组

  类似于设置,映射还按插入顺序进行迭代。get键/值/键值

  foreach()

  弱图是地图类的变体,它不能阻止按垃圾收集钥匙值。常规地图可以很强地引用其钥匙值。即使它们不存在于其他参考文献中,它们仍然可以通过映射访问这些值。与之相关,fealmap仍然对关键值保持弱参考,因此它无法通过fealmap访问这些键,而feefmap不会影响关键值的关键值被回收。

  弱图和地图之间的区别

  弱者实现了一组不存储当前对象列表的对象,并且不会阻碍这些对象作为垃圾收集。

  弱点和集合之间的区别