#

API Docs for: v2.11.1
Show: Inherited Protected Private Deprecated

# Ember.Map Class

Defined in: `packages/ember-metal/lib/map.js:221`
Module: ember-metal
Parent Module: ember

A Map stores values indexed by keys. Unlike JavaScript's default Objects, the keys of a Map can be any JavaScript object.

Internally, a Map has two data structures:

1. `keys`: an OrderedSet of all of the existing keys
2. `values`: a JavaScript Object indexed by the `Ember.guidFor(key)`

When a key/value pair is added for the first time, we add the key to the `keys` OrderedSet, and create or replace an entry in `values`. When an entry is deleted, we delete its entry in `keys` and `values`.

## Constructor

### `Ember.Map`

() private

Defined in `packages/ember-metal/lib/map.js:221`

- Index
- Methods
- Properties

## Item Index

### Methods

- clear
- copy
- create static
- delete
- forEach
- get
- has
- set

### Properties

- size

## Methods

### `clear`

() private

Defined in `packages/ember-metal/lib/map.js:391`

### `copy`

() Ember.Map private

Defined in `packages/ember-metal/lib/map.js:401`

#### Returns:

Ember.Map:

### `create`

() private static

Defined in `packages/ember-metal/lib/map.js:252`

### `delete`

(

- `key`

)
Boolean private

Defined in `packages/ember-metal/lib/map.js:320`

Available since 1.8.0

Removes a value from the map for an associated key.

#### Parameters:

- `key`

#### Returns:

Boolean:

true if an item was removed, false otherwise

### `forEach`

(

- `callback`
- `self`

)
private

Defined in `packages/ember-metal/lib/map.js:358`

Iterate over all the keys and values. Calls the function once for each key, passing in value, key, and the map being iterated over, in that order.

The keys are guaranteed to be iterated over in insertion order.

#### Parameters:

- `callback` Function
- `self`

  if passed, the `this` value inside the callback. By default, `this` is the map.

### `get`

(

- `key`

)
private

Defined in `packages/ember-metal/lib/map.js:276`

Retrieve the value associated with a given key.

#### Parameters:

- `key`

#### Returns:

:

the value associated with the key, or `undefined`

### `has`

(

- `key`

)
Boolean private

Defined in `packages/ember-metal/lib/map.js:346`

Check whether a key is present.

#### Parameters:

- `key`

#### Returns:

Boolean:

true if the item was present, false otherwise

### `set`

(

- `key`
- `value`

)
Ember.Map private

Defined in `packages/ember-metal/lib/map.js:293`

Adds a value to the map. If a value for the given key has already been provided, the new value will replace the old value.

#### Parameters:

- `key`
- `value`

#### Returns:

Ember.Map:

## Properties

### `size`

Number private

Defined in `packages/ember-metal/lib/map.js:265`

Available since 1.8.0

This property will change as the number of objects in the map changes.

Default: 0