How can I convert an object to a Map in JavaScript?
Antek N
antek n profile pic

In JavaScript, you can convert an object to a Map by iterating over its properties and adding them as key-value pairs to a new Map object. Here's an example of how you can accomplish this:

1
2
3
4
5
6
7
8
9
10
11
12

function convertObjectToMap(obj) {
  const map = new Map();

  for (const key in obj) {
    if (obj.hasOwnProperty(key)) {
      map.set(key, obj[key]);
    }
  }

  return map;
}

In this example, theconvertObjectToMap function takes anobj as input, representing the object to be converted to a Map. It initializes a new Map object,map, using thenew Map() constructor. Next, afor...in loop is used to iterate over the properties of theobj. The loop checks if each property is an own property of the object (obj.hasOwnProperty(key)), ensuring that only the object's own properties are processed. For each property,map.set(key, obj[key]) is called to add the key-value pair to the Map, wherekey represents the property name andobj[key] represents the corresponding value. Once all properties have been iterated and added to the Map, the function returns the resulting Map object. Here's an example usage of theconvertObjectToMap function:

1
2
3
4
5
6
7

const obj = { name: 'John', age: 30, city: 'New York' };
const map = convertObjectToMap(obj);

console.log(map.get('name')); // Output: 'John'
console.log(map.get('age')); // Output: 30
console.log(map.get('city')); // Output: 'New York'

In this example, theobj object is converted to a Map using theconvertObjectToMap function. The resulting Map,map, can be accessed and queried using theget() method, passing the desired key to retrieve the corresponding value. Keep in mind that the order of properties in the original object is not guaranteed in the resulting Map, as Maps preserve the insertion order of key-value pairs. It's worth noting that converting an object to a Map is primarily useful when you need to leverage the additional functionalities provided by the Map data structure, such as ordered iteration or easily checking the presence of a specific key. If you only need to access properties by their names, using the object directly may be more appropriate.