以下是我使用的代码:
let map1=map2=map3=new Map();
map1.set(0, 'foo');
map1.set(1, 'foo');
map1.set(2, 'foo');
map1.set(3, 'foo');
//var map2 = new Map();
map2.set(1, 'foo2');
map2.set(2, 'foo2');
//var map3 = new Map();
map3.set(3, 'foo3');
let merge = new Map([...map1, ...map2, ...map3]);
//returns a map of maps data Map(key: time, value: Map(key:id, value: Object))
let dataStore = getData();
let mapStore = [];
let merge;
for(i=value; i>=0; i--){
if(dataStore.has(i)){
//push map into the mapstore array
mapStore.push(dataStore.get(i))
//key object in map to notate that a full update should be performed.
if(dataStore.get(i).has(updateFlag)){
//merge mapStore maps into new map
merge = new Map(mapStore); //results in map with undefined key and value
break;
}
}
}
发布于 2018-08-28 15:03:07
显然需要一些规则来处理map 1和map 2中存在相同密钥的情况,这意味着替换,还是只包括以前不存在的替换:
let mapStore=new Map();
let map1=new Map();
map1.set(0, 'foo');
map1.set(1, 'foo');
map1.set(2, 'foo');
map1.set(3, 'foo');
let map2 = new Map();
map2.set(1, 'foo2');
map2.set(2, 'foo2');
let map3 = new Map();
map3.set(3, 'foo3');
map1.forEach(function(value, key)){
if !mapStore.has(key){
mapStore.set(key, value);
}
}
map2.forEach(function(value, key)){
if !mapStore.has(key){
mapStore.set(key, value);
}
}
map3.forEach(function(value, key)){
if !mapStore.has(key){
mapStore.set(key, value);
}
}
发布于 2018-08-28 15:57:00
使用以下方法合并这些地图:
let merge = new Map([arrayOfMaps])
https://stackoverflow.com/questions/-100008824
复制相似问题