ES6 Map对象的使用

Map对象保存键值对,任何值(对象或者原始值) 都可以作为一个键或一个值

key和value可以是字符串等数据类型,也可以是对象,函数,NaN。

set:insert key and value or update value.

get:otaion the value.

map的遍历方式:

for..of

for (let [key,value] of map){}

for(let key of map.keys()){}

for(let value of map.values())

forEach()

myMap.forEach(function(value,key){});

        <script>
            
            let myMap=new Map();
            myMap.set("a","test1");
            myMap.set("a",1)
            
            let obj={};
            myMap.set(obj,"value_obj");

            let function_test=function(){};
            myMap.set("func",function_test);

            console.log("getFunc:"+myMap.get(obj));

            console.log("-------for of---------");

            for(let [key,value] of myMap){
                console.log(key+"="+value);
            }
            console.log("------------------");
            for(let key of myMap.keys()){
                console.log("key"+"="+key);
            }
            console.log("------------------");
            for(let value of myMap.values()){
                console.log("value"+"="+value);
            }
            console.log("-------forEach---------");
            myMap.forEach(function(value,key){
                console.log(key+"="+value);
            });

        </script>

Map的操作

Map与Array的相互转换

Array转Map:     let myMap=new Map(Array)

Map转Array:     let myArray=Map.from(myMap)

        <script>
            console.log("-----Array to Map-----");
            let kvArray=[["k1","value1"],["k2","value2"]];
            let myMap=new Map(kvArray);
            myMap.forEach(function(value,key){
                console.log(key+"="+value);
            });
            console.log("-----Map to Array-----")
            console.log(Array.from(myMap));
        </script>

Map的克隆

let mapClone=new Map(mapOrigin);

 <script>
            let mapOrigin=new Map([["key1","value1"],["key2","value2"]]);
            let mapClone=new Map(mapOrigin);
            mapClone.forEach(function(value,key){
                console.log(key+"="+value);
            });
            console.log(mapOrigin===mapClone);//false
 </script>

Map的合并

let mapMerge=new Map([...map1,...map2]);  注意操作符“...”是需要的。

        <script>
            let map1=new Map([["1","one"],["2","two"],["3","threeqq"]]);
            let map2=new Map([["3","three"],["4","four"]]);
            let mapMerge=new Map([...map1,...map2]);
            mapMerge.forEach(function(value,key){
                console.log(key+"="+value);//false
            });            
        </script>

 

 

 

 


版权声明:本文为u012664198原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。