Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR ANGULARJS GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SWIFT SASS VUE GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING INTRO TO HTML & CSS BASH RUST

Basic JavaScript

JS Tutorial JS Syntax JS Variables JS Operators JS If Conditions JS Loops JS Strings JS Numbers JS Functions JS Objects JS Dates JS Arrays JS Sets JS Maps JS Math JS RegExp JS Data Types JS Errors JS Events JS Programming JS References JS Versions

JS Advanced

JS Functions JS Objects JS Classes JS Iterations JS Asynchronous JS Modules JS Meta & Proxy JS Typed Arrays JS HTML DOM JS Windows JS Web API JS AJAX JS JSON JS jQuery JS Graphics JS Examples JS Reference


JavaScript Maps

The Map Object

A JavaScript Map is an object that can store collections of key-value pairs, similar to a dictionary in other programming languages.

Maps differ from standard objects in that keys can be of any data type.

Map Characteristics

  • Key Types
    Map keys can be any type (strings, numbers, objects, etc).

  • Insertion Order
    The Map remembers the original insertion order of the keys.

  • Size
    The number of items in a Map is easily retrieved using the size property.

  • Performance
    Maps are optimized for frequent additions and removals of key-value pairs.

  • Iteration
    Maps are iterable, allowing for direct use of for...of loops or methods like forEach().

  • Iteration Order
    The original order is preserved during iteration.


Note

Maps are similar to both Objects (unique key/value collection) and Arrays (ordered values collection).

But if you look close, Maps are most similar to Objects.


How to Create a Map

You create a JavaScript Map by:

  • Create a new Map and add elements with Map.set()
  • Passing an existing Array to the new Map() constructor

Examples

Create a new Map and add elements with Map.set()

// Create an empty Map
const fruits = new Map();

// Set Map Values
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);
Try it Yourself »

Pass an Array to the new Map() constructor:

// Create a Map
const fruits = new Map([
  ["apples", 500],
  ["bananas", 300],
  ["oranges", 200]
]);
Try it Yourself »

Adding Map Values

You can add elements to a Map with the set() method:

Example

fruits.set("mangos", 100);
Try it Yourself »

Changing Map Values

The set() method can also be used to change existing Map values:

Example

fruits.set("apples", 200);
Try it Yourself »

The get() Method

The get() method gets the value of a key in a Map:

Example

fruits.get("apples");    // Returns 500
Try it Yourself »


Maps are Objects

Example

// Returns object:
typeof fruits;
Try it Yourself »

instanceof Map returns true:

Example

// Returns true:
fruits instanceof Map;
Try it Yourself »

JavaScript Objects vs Maps

Differences between JavaScript Objects and Maps:

ObjectMap
Not directly iterable Directly iterable
Do not have a size property Have a size property
Keys must be Strings (or Symbols) Keys can be any datatype
Keys are not well ordered Keys are ordered by insertion
Have default keys Do not have default keys


Browser Support

Map is an ES6 feature.

ES6 is fully supported in all modern browsers since June 2017:

Chrome
51
Edge
15
Firefox
54
Safari
10
Opera
38
May 2016 Apr 2017 Jun 2017 Sep 2016 Jun 2016


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookies and privacy policy.

Copyright 1999-2025 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.