# Class Map

- [TopLevel.Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)
  - [TopLevel.Map](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md)

Map objects are collections of key/value pairs where both the keys and values may be arbitrary ECMAScript language
values. A distinct key value may only occur in one key/value pair within the Map's collection. Key/value pairs are stored
and iterated in insertion order.

**API Version:**

:::note
Available from version 21.2.
:::

## Property Summary

| Property                                                                                          | Description                                   |
| ------------------------------------------------------------------------------------------------- | --------------------------------------------- |
| [size](#size): [Number](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Number.md) | Number of key/value pairs stored in this map. |

## Constructor Summary

| Constructor                                                                                                 | Description                                                                |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [Map](#map)()                                                                                               | Creates an empty map.                                                      |
| [Map](#mapiterable)([Iterable](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Iterable.md)) | If the passed value is null or undefined then an empty map is constructed. |

## Method Summary

| Method                                                                                                                                                                                                                                                                              | Description                                                                           |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| [clear](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#clear)()                                                                                                                                                                                              | Removes all key/value pairs from this map.                                            |
| [delete](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#deleteobject)([Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md))                                                                                                    | Removes the entry for the given key.                                                  |
| [entries](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#entries)()                                                                                                                                                                                          | Returns an iterator containing all key/value pairs of this map.                       |
| [forEach](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#foreachfunction)([Function](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Function.md))                                                                                            | Runs the provided callback function once for each key/value pair present in this map. |
| [forEach](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#foreachfunction-object)([Function](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Function.md), [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)) | Runs the provided callback function once for each key/value pair present in this map. |
| [get](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#getobject)([Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md))                                                                                                          | Returns the value associated with the given key.                                      |
| [has](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#hasobject)([Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md))                                                                                                          | Returns if this map has value associated with the given key.                          |
| [keys](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#keys)()                                                                                                                                                                                                | Returns an iterator containing all keys of this map.                                  |
| [set](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#setobject-object)([Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md), [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md))               | Adds or updates a key/value pair to the map.                                          |
| [values](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md#values)()                                                                                                                                                                                            | Returns an iterator containing all values of this map.                                |

### Methods inherited from class Object

[assign](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#assignobject-object), [create](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#createobject), [create](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#createobject-object), [defineProperties](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#definepropertiesobject-object), [defineProperty](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#definepropertyobject-object-object), [entries](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#entriesobject), [freeze](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#freezeobject), [fromEntries](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#fromentriesiterable), [getOwnPropertyDescriptor](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getownpropertydescriptorobject-object), [getOwnPropertyNames](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getownpropertynamesobject), [getOwnPropertySymbols](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getownpropertysymbolsobject), [getPrototypeOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#getprototypeofobject), [hasOwnProperty](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#hasownpropertystring), [is](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isobject-object), [isExtensible](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isextensibleobject), [isFrozen](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isfrozenobject), [isPrototypeOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#isprototypeofobject), [isSealed](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#issealedobject), [keys](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#keysobject), [preventExtensions](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#preventextensionsobject), [propertyIsEnumerable](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#propertyisenumerablestring), [seal](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#sealobject), [setPrototypeOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#setprototypeofobject-object), [toLocaleString](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#tolocalestring), [toString](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#tostring), [valueOf](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#valueof), [values](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md#valuesobject)

## Property Details

### size

- size: [Number](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Number.md)
  - : Number of key/value pairs stored in this map.

***

## Constructor Details

### Map()

- Map()
  - : Creates an empty map.

***

### Map(Iterable)

- Map(values: [Iterable](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Iterable.md))
  - : If the passed value is null or undefined then an empty map is constructed. Else an iterator object is expected
    that produces a two element array-like object whose first element is a value that will be used as a Map key and
    whose second element is the value to associate with that key.

    **Parameters:**

    - values - The initial map values

***

## Method Details

### clear()

- clear(): void
  - : Removes all key/value pairs from this map.

***

### delete(Object)

- delete(key: [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)): [Boolean](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Boolean.md)
  - : Removes the entry for the given key.

    **Parameters:**

    - key - The key of the key/value pair to be removed from the map.

    **Returns:**

    - `true` if the map contained an entry for the passed key that was removed. Else `false` is returned.

***

### entries()

- entries(): [ES6Iterator](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.ES6Iterator.md)
  - : Returns an iterator containing all key/value pairs of this map.
    The iterator produces a series of two-element arrays with the first element as the key and the second element as the value.

***

### forEach(Function)

- forEach(callback: [Function](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Function.md)): void
  - : Runs the provided callback function once for each key/value pair present in this map.

    **Parameters:**

    - callback - The function to call, which is invoked with three  arguments: the value of the element, the key of the element, and the  Map object being iterated.

***

### forEach(Function, Object)

- forEach(callback: [Function](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Function.md), thisObject: [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)): void
  - : Runs the provided callback function once for each key/value pair present in this map.

    **Parameters:**

    - callback - The function to call, which is invoked with three  arguments: the value of the element, the key of the element, and the  Map object being iterated.
    - thisObject - The Object to use as 'this' when executing callback.

***

### get(Object)

- get(key: [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)): [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)
  - : Returns the value associated with the given key.

    **Parameters:**

    - key - The key to look for.

    **Returns:**

    - The value associated with the given key if an entry with the key exists else `undefined` is returned.

***

### has(Object)

- has(key: [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)): [Boolean](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Boolean.md)
  - : Returns if this map has value associated with the given key.

    **Parameters:**

    - key - The key to look for.

    **Returns:**

    - `true` if an entry with the key exists else `false` is returned.

***

### keys()

- keys(): [ES6Iterator](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.ES6Iterator.md)
  - : Returns an iterator containing all keys of this map.

***

### set(Object, Object)

- set(key: [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md), value: [Object](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Object.md)): [Map](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.Map.md)
  - : Adds or updates a key/value pair to the map.

    You can't use JavaScript bracket notation to access map entries. JavaScript bracket notation accesses only
    properties for Map objects, not map entries.

    **Parameters:**

    - key - The key object.
    - value - The value to be associated with the key.

    **Returns:**

    - This map object.

***

### values()

- values(): [ES6Iterator](/docs/commerce/b2c-commerce/references/b2c-script-api/TopLevel.ES6Iterator.md)
  - : Returns an iterator containing all values of this map.

***
