Map和Set

Posted mwxz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map和Set相关的知识,希望对你有一定的参考价值。

javascript的默认使用  {}  来表示对象、集合。

Map是一个带  键  的数据项的集合,类似Object。通常是一个键对应一个值。{key:vale}

Set是一个特殊的,只含有键(也可以称为特殊值,我感觉和map中的键差不多)的一个集合。{key}

定义Map的方法

        let col = new Map;//创建Map

        col.set("Jucy",60);//使用set方法根据键存储值,
        col.set("Xiao",88)

        col.set("Jucy",90)//一个键只能对应一个值,如果对用多个值,会把之前的值覆盖掉
        
        let num = col.get("Xiao")//根据 键 来查找对应的值。

        console.log(col);
        console.log(num);
        console.log(col.size
        /**
         * map.has(key),如果key存在,返回true,否则返回false
         * map.delete(key),根据key来删除指定的值
         * map.clear(),清空这个map对象
         * map.size,返回当前元素的个数
        */    

  Map中的遍历方法

     let map = new Map([//在创建Map对象的时候直接传进去参数
            ["1","这是1"],
            ["2","这是2"],
            ["3","这是3"]
        ])
        console.log(map);
        //map的遍历方法
        for(let i of map.keys()){
            //遍历所有的键
            console.log(i)
        };
        for(let i of map.values()){
            //遍历所有的值
            console.log(i)
        };
        for(let i of map.entries()){
            //遍历所有的实体,
            //这里 .entries()可以省略,只写对象名称默认是遍历所有实体。
            console.log(i)
        }

定义Set

let set = new Set([1,2,3,3,3,"3",[3]]);
        console.log(set);
        //Set(5) {1, 2, 3, "3", Array(1)};中间重复的3会被省略掉,但是 不能数据类型的则不会
        set.add(5)
           .add(6);//通过add方法来添加键,可以链式操作
        console.log(set);//
        set.delete(6)//删除指定key

        //在Map中的方法同样也在Set中支持

Set和Map类似,也是一组key的集合,但是不存储value。所以Set‘中的数据是不能够重复的

 

以上是关于Map和Set的主要内容,如果未能解决你的问题,请参考以下文章

C++进阶第二十篇——map和set(map和set的用法+multimap+multiset+map和set代码实现)

了解map和set的底层实现

C++STL之map和set的使用

C++STL之map和set的使用

map和set的模拟实现

Map和Set