Overview of Advanced Data Management in Data Structures

Welcome back, future JavaScript master! Our mission is to master JavaScript Maps, a tool for managing data using key-value pairs that distinguish them from objects (dictionaries). Buckle up; we're about to dive deep into data management using maps in JavaScript!

Understanding JavaScript Maps

A Map in JavaScript is a guide to the treasures of unique key-value pairs. Unlike JavaScript objects, which mostly use strings as keys, Map permits any type of keys, thus charting a unique path to each treasure.

Here is an example of creating and populating a Map:

const spacecrafts = new Map();  // Build a new Map
spacecrafts.set(1234, 'Numerical Planet'); // Using numerical key
spacecrafts.set(true, 'Boolean Planet'); // Using boolean key
spacecrafts.set('Star Destroyer', 'Death Star'); // Using common string key

console.log(spacecrafts);
/*
Prints:
Map(3) {1234: "Numerical Planet", true: "Boolean Planet", "Star Destroyer": "Death Star"}
*/

You can see how Map supports different types of keys without any issues.

Built-in Methods in Maps

Maps have built-in methods such as get, set, delete, and has that enable efficient data management. The get method retrieves the value of a given key, has verifies the existence of a key in the Map, and delete eliminates a key-value pair:

console.log(spacecrafts.get(1234)); // Output: Numerical Planet
console.log(spacecrafts.has('Star Destroyer')); // Output: true
spacecrafts.delete('Star Destroyer'); // Remove 'Star Destroyer' from our Map
console.log(spacecrafts.has('Star Destroyer')); // Output: false
Managing Default Values in Maps

The get method returns undefined for absent keys. However, you can use a conditional operator to provide a default value in these situations:

let spacecraft = 'Voyager';
// If 'Voyager' exists on our Map, get its destination. Otherwise, print 'Unknown destination'
console.log(spacecrafts.has(spacecraft) ? spacecrafts.get(spacecraft) : 'Unknown destination'); // Output: Unknown destination
Maps vs. Objects

While objects in JavaScript predominantly hold string keys, Maps can accommodate any type of keys and preserve the order of insertion, making them ideal for complex data manipulation.

Here is how you can use more advanced types of keys in the Map structure, specifically, the key of an object data type:

let planetMap = new Map();  // Create a Map
planetMap.set({name: 'Mars'}, 'Fourth planet from the Sun');  // Add key-value pair
console.log(planetMap.get({name: 'Mars'})); // Try to get value - Output: undefined
// undefined is returned, as `{name: 'Mars'}` is constructed once again, so it's a different object

let planet = {name: 'Mars'};  // Define an object
planetMap.set(planet, 'Fourth planet from the Sun'); // Set this object as a key in our Map
console.log(planetMap.get(planet)); // Get the value for this object key - Output: Fourth planet from the Sun

In this context, the object {name: 'Mars'} serves as a unique key that possesses its values.

Sign up
Join the 1M+ learners on CodeSignal
Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal