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>

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值