Map的各种转换

182 阅读1分钟
//类型转换 

 var m = new Map([['name','a'],['age',10],['a',3]]); 

 //map转为数组 

 [...m]; 
 [...m.keys()];
 [...m.value()];

 //数组转为map

 var m = new Map([['name','a'],['age',10],['a',3]]);
        var m2 = [...m];  
        var m3 = new Map(m2); 

 //map转为对象 

 var m = new Map([['name','a'],['age',10],['a',3]]);
        var obj = {};
        for(let [k,v] of m){
            obj[k] = v;
        };
        console.log(obj);

 //对象转为map

 

var obj2 = {msg:'hello',flag:true};
        var m = new Map();
        for(let k in obj2){
            m.set(k,obj2[k])
        }; 

 //4、另一种方式 对象转map 

 function objToStrMap(obj) {
		  let m = new Map();
		  for (let k of Object.keys(obj)) {    //name value   for...of 不能遍历对象
			m.set(k, obj[k]);
		  }
		  return m;
		};
		objToStrMap({name:1, value:2});

        //Object.keys()
        var obj2 = {msg:'hello',flag:true};
        console.log(Object.keys(obj2));  //["msg", "flag"]
        console.log(Object.values(obj2));  //["hello", true]