set集合
set用于存放不重复的数据
1、创建new Set(); 创建一个没有任何内容的set集合
new Set(iterable); 创建一个具有初始内容的set集合,内容来自于可迭代对象每一次迭代的结果
如果写重复了,会自动去重。可用于去重操作
eg:
数组去重:
const arr = [3, 532, 2, 3, 1, 1, 6, 5, 6, 5]
// const s = new Set(arr); 获得set集合对象
// const result = […s];把set集合转换为数组
const result = […new Set(arr)];
console.log(result);
字符串去重
const str = “fagalganbvailhvabivav”;
const s = […new Set(str)].join("");
console.log(s)
2、对set集合进行后续操作
①add(数据):添加一个数据到set集合末尾,如果数据已存在,则不进行任何操作
②set 使用Object.is的方式判断两个数据是否相同,但是针对+0和-0,set认为是相对的【颠倒】
③has(数据):判断set中是否存在对应的数据【Object.has】
④delete(数据):删除匹配的数据,返回是否删除成功
⑤clear():清空数据集合
⑥size:获取set集合中的元素数量,只读属性,无法赋值
3、如何与数组进行相互转换
const s=new Set([x,x,x,x]);
//set本身也是一个可迭代对象,每次迭代的结果就是每一项的值
//用展开运算符…展开数组里面的东西
const arr = […s];
4、如何遍历
①使用for…of循环进行遍历
②使用set中的实例方法forEach()
注意:set集合中不存在下标,因此forEach中的回调的第二个参数和第一个参数是一致的
map集合
map集合
键值对(key value pair)数据集合的特点:键不可重复
map集合专门用于存储多个键值对数据
在map出现之前,我们使用的是对象的方式来存储键值对,键是属性名,值是属性值
使用对象存储有以下问题:
1、键名只能是字符串
2、获取数据的数量不方便
3、键名容易跟原型上的名称冲突
完整的就用对象;
随意增加或者删除,少一点多一点都不是问题的就用map
1、创建map
new Map(); //创建一个空的map
new Map(iterable)
2、如何进行后续操作
size:只读属性,获取当前map中键的数量
set(键,值):设置一个键值对,键和值可以是任何类型
如果键不存在,则添加一项
如果键已经存在,则修改它的值
比较键的方式和set相同
{}添加,会添加两个键,不会覆盖,如果用变量存储就会覆盖
get(键):根据一个键得到对应的值
has(键):判断某个键是否存在
delete(键):删除指定的键
clear():清空
3、和数组互相转换
和set一样
4、遍历
for-of,每次迭代得到的是一个长度为2的数组
forEach,通过回调遍历
参数1:每一项的值;参数2:每一项的键;参数3:map本身
来源:CSDN
作者:夜空下的沉默
链接:https://blog.csdn.net/weixin_42602873/article/details/104667907