Самый эффективный способ скопировать карту в существующую карту - PullRequest
4 голосов
/ 27 марта 2019

Я хочу перезаписать Map b в приведенном ниже фрагменте с содержанием Map a . В настоящее время я очищаю содержимое b и затем устанавливаю записи по одной. Что является более эффективным способом ( меньше мусора , быстрее и т. Д.) Написания функции copyMap?

const a = new Map([[1, 2], [2, 10], [3, 20]]);
const b = new Map([[1,5]]);

// I want to copy a into b, at the end b should look like
// b = new Map([[1, 2], [2, 10], [3, 20]]);

console.log(a,b);

function copyMap(srcMap, destMap) {
  destMap.clear();
  
  // Maybe this loop could be done in a single call somehow?
  for(let item of srcMap) {
    destMap.set(item[0], item[1]);
  }
}
copyMap(a, b);

// a and b should have same entries
console.log('a: ',[...a.entries()], 'b: ', [...b.entries()]);

1 Ответ

0 голосов
/ 28 марта 2019

вы можете сделать

b=new Map(a)

и вам нужно потерять объявление const для b

...