Search code examples
javascriptclone

How to copy a Map into another Map?


How do I clone/copy a Map in JavaScript?

I know how to clone an array, but how do I clone/copy a Map?

var myArray = new Array(1, 2, 3);
var copy    = myArray.slice();
// now I can change myArray[0] = 5; & it wont affect copy array

// Can I just do the same for map?
var myMap = new ?? // in javascript is it called a map?
var myMap = {"1": 1, "2", 2};
var copy  = myMap.slice(); 

Solution

  • A simple way (to do a shallow copy) is to copy each property of the source map to the target map:

    var newMap = {};
    for (var i in myMap)
       newMap[i] = myMap[i];
    

    NOTE: newMap[i] could very well be a reference to the same object as myMap[i]