Set集合与Map集合

Set集合

  • 包含多组键值对
  • 无重复元素的有序列表
  • 不是用来逐一访问每个元素,通常是用来检测给定的某个值在某个集合中是否存在。
创建set集合并添加元素
var set =new Set();
var key1={"name":1,"age":2};
var key2={};
set.add(key1);
set.add(key2);
set.add([1,2]);
set.add("1");
set.add(1)
set.add(+0);
set.add(-0)

在这里插入图片描述

  • 不会对所存值进行强制的类型转换
  • Set集合中的+0和-0被认为是相同的
  • 向Set集合中添加多个对象,则它们之间彼此彼此独立
  • 如果多次调用add()并传入相同的值作参数,则后续的调用实际会被忽略
has()、delete()、clear()、forEach()
set.forEach((value,key,sets)=>{
	console.log(key+"~~~"+value)
	console.log(sets)
})
console.log(set.has("1"))
set.delete("1")
console.log(set.has("1"))
set.clear()
console.log(set)

在这里插入图片描述

  • Set集合的forEach()方法的回调函数前两个参数的值是一样的,因为Set集合没有键名
  • has()检测Set集合中是否存在某个值
  • delete()移除Set集合中某个元素
  • clear()清除Set集合中所有元素

WeakSet

只存储对象的弱引用,不可以存储原始值

var set = new WeakSet();
var key1 = {
	"name": 1,
	"age": 2
};
var key2 = {};
set.add(key1);
set.add(key2);
set.add([1, 2]);

在这里插入图片描述

  • 不支持forEach()
  • 不支持size属性
  • 传入非对象参数会报错

Map集合

  • 许多键值对的有序列表
  • 键名和对应的值支持所有的数据类型
set()、get()
var map=new Map();
var key1={};
map.set("name","Fan");
map.set("age",22);
map.set(key1,5);
console.log(map.get("name"));
console.log(map.get("age"));
console.log(map);

在这里插入图片描述

  • 对象可作为对象属性的键名
has()、delete()、clear()、forEach()
map.forEach((value,key,maps)=>{
	console.log(key+"  "+value)
	console.log(map)
})
console.log(map.has("name"))
map.delete("name")
console.log(map.has("name"))
map.clear();
console.log(map)

在这里插入图片描述

WeakMap

  • 存储对象的弱引用,许多键值对的无序列表
  • 键名必须是非null类型的对象
  • 值可以是任何类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值