Symbol类型与 Set集合、Map集合

目录

一.  Symbol类型

        1. ES5的数据类型:number、string、boolean、bigint、null、undefined、

                                        object

        2. ES6新增的Symbol:表示一个唯一的值

二.  Set 集合

        1.  创建方式:

         2.  常用的方法:

        3.  Set集合的属性:size集合中存放元素的个数

        4.  Set的遍历方法:

        5.  集合运算

        6.  WeakSet集合:只是一个对象集合。即集合中只能存放对象。

三.  Map集合

        1.   数据的存放格式:采用 key-value(键值对) 的方式进行存放。

         采用这种方式存放数据的有:

        2.  Map的定义:

         3.   Map的使用方法

***注意:


一.  Symbol类型

        1. ES5的数据类型:number、string、boolean、bigint、null、undefined、

                                        object

        2. ES6新增的Symbol:表示一个唯一的值

                a.  直接创建:let 变量名 = Symbol

                b.  间接创建:传字符串 let 变量名 = Symbol(字符串)

二.  Set 集合

        是一种数据结构,里面不能存放重复的值。可以用于数组去重、字符串去重

        1.  创建方式:

                a、使用new运算符:let 变量 = new Set()

                b、通过数组来创建:let 变量名 = new Set( [1,2,3,5,6] ) ,去除重复的元素

let s1 = new Set();//创建一个空集合
        console.log(s1);
        let arr = [1,2,3,2,0,3,5];
        let s2 = new Set(arr);
        console.log(s2);//{1,2,3,0,5}

         2.  常用的方法:

                a.  add(val): 向集合中添加元素

                b.  delete(val):删除集合中的元素。删除成功返回true,删除失败返回false

                c.   has(val):判断val在集合中是否存在,若存在返回true,不存在返回false

                d.   clear():清空集合

                e.   values():获取的是集合中所有value

                f.    keys(): 获取集合中的key

        强调:Set集合也是key-value格式,它的key和value是相同的

        3.  Set集合的属性:size集合中存放元素的个数

        4.  Set的遍历方法:

                a.  for ... of

        

for(let i of s1.keys()){
        console.log(i)
    }

                b . forEach

s1.forEach(function(value,key){//set集合中key 和value相同
        console.log(value+'  ----  '+key)
    })

        5.  集合运算

                a.  并集:

let setA = new Set([4,5,6])
let setB = new Set([5,6,7])
let bj = new Set([...setA,...setB])
console.log(bj)

                b.  交集 和差集

        

 let s1 = new Set([4,5,6]);
        let s2 = new Set([5,6,7]);

        let bj = new Set([...s1,...s2]);//并集
        // console.log(bj);

        let jj = [...s1].filter(function(item){
            return s2.has(item);//交集

            return !s2.has(item);//s1的差集

        })

        6.  WeakSet集合:只是一个对象集合。即集合中只能存放对象。

                它支持 add,has 和 delete 方法

三.  Map集合

        1.   数据的存放格式:采用 key-value(键值对) 的方式进行存放。

         采用这种方式存放数据的有:

              (1)对象:属性对应的是key(键),属性值对应的是value(值)

            (2)JSON:是常用的一种前后台数据交换的格式

              (3)  Map

        2.  Map的定义:

                Map是一种数据结构(Hash结构),在ES6中是Map一种存放许多键值对的有序列表

         3.   Map的使用方法

                1)属性:size —- 存放的是Map中的元素个数

                2)方法:            

                        ​ a、Map():构造方法。用来创建Map对象,不带参数表示创建空的Map,即size属

                                                性值为0

                        b、set(key,value):向Map中添加数据

                        c、get(key):获取键为key的value

                        d、has(key):判断Map中是否存在key

                        e、delete(key):删除key

                        f、clear():清空Map

                        ​g、keys():返回Map中的所有key

***注意:

                (1)Map中的key不能重复,但是value可以重复

                (2)keys()返回的是Map中所有key集合 —— keys ;  (返回的类型是Set)

               (3)在Map中通过key可以得到对应的value,反之则不行

                         h、values():返回Map中的所有value

                        ​ i、entries():可以获取Map的所有成员(即所有的key-value)

                        j.   forEach循环遍历Map集合和for...of遍历Map集合:

        let m2 = new Map();
        //相集合中添加元素
        m2.set('id', 's1001').set('dep', '开发部').set('phone', '114');
        console.log(m2.keys());
       
        for (let key of m2.keys()) {
            let str = `${key} ====> ${m2.get(key)}`;
            console.log(str);
        }
        m2.forEach(function (value, key) {//遍历map集合
            console.log(key, ':', value);
        })
        console.log('-------------------')
        for(let [key,value] of m2.entries()){//let [key,value] of m2
            console.log(key,':',value);
        }

                4.  Map转换为数组

                      解构整个Map集合:

                      解构Map的keys与values:

                

 let m3 = new Map([
            [1,'北京'],
            [2,'上海'],
            [3,'深圳'],
        ]);
        //解构Map
        let arr_m3 = [...m3];
        console.log(arr_m3);
        //解构Map的keys
        let keyArr = [...m3.keys()];
        console.log(keyArr);
        //解构Map的values
        let valueArr = [...m3.values()];
        console.log(valueArr);

       

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值