set和map

set

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

var s = new Set();

set 使用object。is来判断两个值是否相等 但是专门针对0和-+0做了处理 在set里面默认他们是相等的

var a = new Set() 
a.add(-0);
  a.add(+0);
 console.log(a)//Set(1){0}

增加 s.add(数据)添加一个 添加一个数据到集合的末尾 如果这个数字原本就存在 那么 就不进行任何操作

var s = nwe Set();
s.add(1);
s.add(2);
console.log(s)//Set(2) {1, 2}

查询 s.has(数据) 判断set集合中是否存在查询的数据,返回值为true和false

console.log(s.has(1))//true

删除 delete(数据) 对集合里的数据匹配删除成功就返回true 失败就放回false

var c = new Set()
c.add(1);
c.add(2);
console.log(c.delete(1)); true 表示匹配到数据 删除成功
console.log(c.delete(3)); false 表示没有匹配到数据 删除失败
console.log(c)//set(1){2}

清空 clear()里面不用传参数 清空整个集合

var c = new Set()
c.add(1);
c.add(2);
console.log(c.clera())//Set(0) {}

size 属性是获取set集合里面的所有元素的个数 基本上数组的长度类似

​ 但是size是自读属性 不能重新赋值 如果重新赋值 不会起任何作用 也不会报错

console.log(z.size);

set集合的遍历

使用for-of进行遍历 返回的item是每一项的值

var s = nwe Set();
s.add(1);
s.add(2);
for (const item of s) {
            console.log(item);//1,2
        }

for each方法 foreach方法是集合的实例化方法但是set集合没有下表所有index和item都表示元素,s表示原数组

var s = nwe Set();
s.add(1);
s.add(2);
s.forEach((item, index, s) => {
            console.log(item);//1,2
            console.log(index);//1 2
            console.log(s);/Set(2) {1,2}
        })

filter方法 返回值是一个新数组 是用来检查数组中的元素是否符合某一条件 把符合条件的过滤出来,这个方法不会改变原数组

var arr = [1,2,3,4,5,6,7,8]
 var res =arr.filter(function(item,index,self){
            console.log(item);//元素
            console.log(index);//元素下标
            console.log(self);//arr数组
            return item % 2 ==2;
        })
        console.log(res);//[2,4,6,8]

2map

一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。

一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。

map用set方法来设置键和value

m.set(o."content")

map用set方法来获取属性value

m.get(o)//content

Map 的迭代

for…of

var myMap = new Map();
myMap.set(0, "zero");
myMap.set(1, "one");
 

for (var [key, value] of myMap) {
  console.log(key + " = " + value);
}
//因为结构赋值的原因 元素与属性值相对应
/*
0 = zero
 1 = one*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: ES6中的SetMap是两种新增的集合类型。Set是一种无重复值的集合,可以通过new Set()来创建。它具有add方法用于向集合中添加元素,has方法用于判断集合中是否存在某个元素,clear方法用于清空集合。Set也可以用于数组去重,通过new Set(\[...\])的方式将数组转换为Set,利用Set的特性去除重复值。\[1\] Map是一种键值对的集合,可以通过new Map()来创建。它具有set方法用于向集合中添加键值对,get方法用于获取指定键名对应的值,has方法用于判断集合中是否存在某个键名,clear方法用于清空集合。Map的键名可以是任意数据类型,包括引用值,但需要注意的是,引用值作为键名时,需要使用相同的引用地址才能获取到对应的值。\[2\] SetMap都可以使用for...of循环或forEach方法进行遍历。在Set中,forEach的第二个参数是集合的元素,因为Set中不存在下标。而在Map中,forEach的第一个参数是键值对的值,第二个参数是键值对的键名。\[3\] 总结来说,SetMap是ES6中新增的集合类型,Set用于存储无重复值的集合,Map用于存储键值对的集合。它们提供了一些方法来操作集合,如添加、获取、判断是否存在等。在使用时需要注意它们的特性和方法的使用方式。 #### 引用[.reference_title] - *1* *2* [ES6中的MapSet详解](https://blog.csdn.net/m0_45093055/article/details/126430467)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ES6中的setmap](https://blog.csdn.net/weixin_44247866/article/details/127561391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值