Map() 用来存储键值对,是键值对的集合;即用来管理键值对(key:value)
Set() 用来存储键,是键的集合;即用来管理一组键(key)
如下,可以在控制台测试map集合的基础方法
// 新建Map集合 var m1=new Map() // 添加键值对 m1.set("name","xiaobaigis") // 添加键值对 m1.set(5,"number") // 判断是否有指定键 m1.has(5) // 删除指定键 m1.delete(5) // 再判断是否存在某指定键 m1.has(5) // 清空map集合 m1.clear() // 获取集合大小 m1.size()
通过观察可以发现: 键名可以是数字,字符串,对象等类型
根据如下步骤,在控制太操作set集合,直观感受set集合的特点
// 创建set空集合 var s1=new Set() // 添加数字 s1.add(2) // 添加数字 s1.add(2) // 添加字符串 s1.add('name') // 添加对象 s1.add({}) // 判断是否存在该键 s1.has(2) // 判断是否存在该键 s1.has(3) // 删除键2 s1.delete(2) // 判断是否存在该键 s1.has(2) // 集合大小 s1.size
通过观察可以发现:
1 set集合可以添加数字,字符串,对象等类型的键,
2 键不重复
初始化set集合;
var s2 =new Set([2,3,4,5,63,2,3,2,3]) // {2, 3, 4, 5, 63} var s3 =new Set(["name","sfd","name"]) // {'name', 'sfd'}
所以Set集合可以用来数组去重;
在平时,map和set用的比较少;是因为map和对象很像,set和数组很像;那什么场景使用这两种数据结构呢
如果要求键名类型不限于字符串,那么可以选择Map();
如果要管理一组唯一的键组合,则可以选择Set();