Map与数组、对象之间的转换
Map转数组
const map = new Map();
map.set(1,"23").set(2,"32").set(3,"45");
const arr = [...map];
console.log(arr);
数组转Map
const arr = ["foo","bar","baz"];
const arrChangeMap = (arr) => new Map(arr.map( (value,key) => [key,value]));
console.log(arrChangeMap(arr));
Map转对象
const map = new Map();
map.set(1,"foo").set(2,"bar").set(3,"baz");
const mapChangeObj = (map) => {
let obj = {};
for(let [k,v] of map) {
obj[k] = v;
}
return obj;
}
console.log(mapChangeObj(map));
对象转Map
const obj = {
"1" : "foo",
"2": "bar",
"3" : "baz",
}
const objChangeMap = (obj) => {
let map = new Map();
for(let key in obj) {
map.set(key,obj[key]);
}
return map;
}
console.log(objChangeMap(obj));
数组转对象
const arr= [
{key:"a",value:'31231'},
{key:"b",value:'31231'},
{key:"c",value:'31231'},
{key:"d",value:'31231'},
]
let obj = arr.reduce(
(accumulator, current) => {
accumulator[current.key] = current;
return accumulator;
},
{}
);
console.log(obj)