es6 set与map数据结构

es6新增集合类型set与map

#set
set是ES6里面提供的一种新的数据结构 它类似于数组 但是他里面所有的成员都是唯一的
在这里插入图片描述
这里我们会发现相同的数据已经被去除了,可以用来对数组去重,但是大家得注意这个是set类型的
所以
在这里插入图片描述
这样就是一个完整的set去重数组了

在set传参过程中大家需要注意Set创建时 传递的参数必须是可以进行遍历的 否则就会报错(typeError)数组 伪数组 都可以作为参数

接下来我们具体来看一下set的方法
1.add 添加到set的最后一位
在这里插入图片描述

2.has 判断set集合中是否存在该元素,返回值为布尔类型

        let set2 = new Set(); //创建一个没有任何内容的set集合
        //具有初始化数值的set集合
        set2.add("Q");
        set2.add("q");
        set2.has("Q");
        console.log(set1);
        console.log(set2);
        console.log(set2.has("Q"));

在这里插入图片描述

3.delete 删除某个数据不传参 或者穿的参数为不存在的值 那么就不删除,
在这里插入图片描述
你会发现Q已经没了

4.clear 清空整个set集合里面的内容
在这里插入图片描述
这里我们发现set被清空,且我上面删除一个不存在的Z删除失败

5.size 获取set集合中元素数量 只读属性 不能进行赋值。

        let set2 = new Set("YIDIANBUYAOCHONGFUYOU");
        for(let i =0 ;i<set2.size;i++){
            console.log(set2.has(i));
        }
        for(let item of set2){
            console.log(item);
        }

后台效果展示
讲完set之后我们来讲map,map跟set的用法相似
map
普通对象存储的缺点 :

  1. 键名只能使用字符串
  2. 对象的属性和原型上的方法或者属性发生冲突

ES6引入map数据结构 特点 : 键名不能重复 可以以其他数据类型作为键名

 var mp = new Map();
        var arr = [12, 13, 15];
        // 给map对象设置属性  使用set方法  键名可以为复杂数据类型  要获取使用get
        mp.set(arr, "我是一个数组");
        console.log(mp);
        console.log(mp.get(arr));
// Map作为构造函数  可以接受一个数组作为参数 该数组的元素必须是表示一对键值对的数组
        var mp1 = new Map([["name", "jack"], ["age", "13"], ["girlFriend","rose"]]);
        // var mp1 = new Map(["name", "jack", "age", "13", "girlFriend","rose"]);  // 报错

1.size 返回 Map 结构的成员总数。
2.set (key, value) 设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。

3.get(key) 读取key对应的键值,如果找不到key,返回undefined。
4.has(key) 返回一个布尔值,表示某个键是否在当前 Map 对象之中。
5.delete(key) 删除某个键,返回true。如果删除失败,返回false。
6.clear() 清空整个map集合

       let obj = {
            name:"xjs",
            age:18
        }
        let map1 = new Map([[obj,"1"],["b",2],["c",3]]);
        console.log(map1);
        let  text = map1.get(obj.name);
        console.log(text);
        
        map1.forEach((item,index,s) =>{
            console.log(item,index,s);
        })

展开前

展开后
如果对本章不懂,请关注私聊谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值