# Map

## Overview

The Map object holds key-value pairs and remembers the original insertion order of the keys.\
Any value (both objects and primitive values) may be used as either a key or a value.

For more information see: [Map (MDN)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map).

## Properties Summarized

| Type                                                                         | Name          | Summary                                                                    |
| ---------------------------------------------------------------------------- | ------------- | -------------------------------------------------------------------------- |
| [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) | [size](#size) | The size accessor property returns the number of elements in a Map object. |

## Methods Summarized

| Type                                                                             | Name                                                              | Summary                                                                                                                                         |
| -------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| void                                                                             | [clear()](#clear)                                                 | The clear() method removes all elements from a Map object.                                                                                      |
| [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)   | [delete(key)](#delete-key)                                        | The delete() method removes the specified element from a Map object by key.                                                                     |
| [Iterator](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/iterator) | [entries()](#entries)                                             | The entries() method returns a new iterator object that contains the \[key, value] pairs for each element in the Map object in insertion order. |
| void                                                                             | [forEach(callback, thisArgument)](#foreach-callback-thisargument) | The forEach() method executes a provided function once for each value in the Map object, in insertion order.                                    |
| [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object)     | [get(key)](#get-key)                                              | The get() method returns a specified element from a Map object.                                                                                 |
| [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)   | [has(key)](#has-key)                                              | The has() method returns a boolean indicating whether an element with the specified key exists in a Map object or not.                          |
| [Iterator](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/iterator) | [keys()](#keys)                                                   | The keys() method returns a new iterator object that contains the keys for each element in the Map object in insertion order.                   |
| [Map](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/map)           | [set(key, value)](#set-key-value)                                 | The set() method adds or updates an entry in a Map object with a specified key and a value.                                                     |
| [Iterator](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/iterator) | [values()](#values)                                               | The values() method returns a new iterator object that contains the values for each element in the Map object in insertion order.               |

## Properties Detailed

### size

The size accessor property returns the number of elements in a Map object.

**Type**\
[Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number)

**Sample**

```js
map.size;
```

## Methods Detailed

### clear()

The clear() method removes all elements from a Map object.

**Returns:** void

**Sample**

```js
map.clear();
```

### delete(key)

The delete() method removes the specified element from a Map object by key.

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **key** ;

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)

**Sample**

```js
var success = map.delete(key);
```

### entries()

The entries() method returns a new iterator object that contains the \[key, value] pairs for each element in the Map object in insertion order. In this particular case, this iterator object is also an iterable, so the for-of loop can be used..

**Returns:** [Iterator](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/iterator) the iterator that can be used in for of loops

**Sample**

```js
for(var entry of map.entries()) {}
```

### forEach(callback, thisArgument)

The forEach() method executes a provided function once for each value in the Map object, in insertion order.

**Parameters**

* [Function](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/function) **callback** ;
* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **thisArgument** ;

**Returns:** void

**Sample**

```js
map.forEach(function(keyValuePair) {});
```

### get(key)

The get() method returns a specified element from a Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map object.

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **key** ;

**Returns:** [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object)

**Sample**

```js
var value = map.get(key);
```

### has(key)

The has() method returns a boolean indicating whether an element with the specified key exists in a Map object or not.

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **key** ;

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)

**Sample**

```js
var containsKey = map.has(key);
```

### keys()

The keys() method returns a new iterator object that contains the keys for each element in the Map object in insertion order. In this particular case, this iterator object is also an iterable, so a for...of loop can be used.

**Returns:** [Iterator](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/iterator) the iterator that can be used in for of loops

**Sample**

```js
var values = map.keys();
```

### set(key, value)

The set() method adds or updates an entry in a Map object with a specified key and a value.

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **key** ;
* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **value** ;

**Returns:** [Map](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/map)

**Sample**

```js
map.set(keyObject, value);
```

### values()

The values() method returns a new iterator object that contains the values for each element in the Map object in insertion order.

**Returns:** [Iterator](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/iterator) the iterator that can be used in for of loops

**Sample**

```js
var values = map.values();
```

***
