OpenLayers v4.0.1 API - Class: Collection

# Class: Collection

This documentation is for OpenLayers v4.0.1. The latest is v.

## ol.Collection

An expanded version of standard JS Array, adding convenience methods for manipulation. Add and remove changes to the Collection trigger a Collection event. Note that this does not cover changes to the objects within the Collection; they trigger events on the appropriate object, not on the Collection as a whole.

#### new ol.Collection(opt_array)

src/ol/collection.js, line 29

  Name | Type | Description
  --- | --- | ---
  `array` | Array.<T> | Array.

  ##### Fires:

  - `add` (ol.Collection.Event) - Triggered when an item is added to the collection.
  - `change` (ol.events.Event) - Generic change event. Triggered when the revision counter is increased.
  - `change:length` (ol.Object.Event)
  - `propertychange` (ol.Object.Event) - Triggered when a property is changed.
  - `remove` (ol.Collection.Event) - Triggered when an item is removed from the collection.

### Extends

- ol.Object

### Classes

Event

### Observable Properties

Name | Type | Settable | ol.Object.Event type | Description
--- | --- | --- | --- | ---
`length` | number | no | `change:length` | The length of the array.

### Methods

#### changed() inherited

src/ol/observable.js, line 58

  Increases the revision counter and dispatches a 'change' event.

#### clear()

src/ol/collection.js, line 49

  Remove all elements from the collection.

#### dispatchEvent(event) inherited

src/ol/observable.js, line 75

  Dispatches an event and calls all listeners listening for events of this type. The event parameter can either be a string or an Object with a `type` property.

  Name | Type | Description
  --- | --- | ---
  `event` | Object | ol.events.Event | string | Event object.

#### extend(arr){ol.Collection.<T>}

src/ol/collection.js, line 63

  Add elements to the collection. This pushes each item in the provided array to the end of the collection.

  Name | Type | Description
  --- | --- | ---
  `arr` | Array.<T> | Array.

  ##### Returns:

  This collection.

#### forEach(f, opt_this)

src/ol/collection.js, line 81

  Iterate over each element, calling the provided callback.

  Name | Type | Description
  --- | --- | ---
  `f` | function | The function to call for every element. This function takes 3 arguments (the element, the index and the array). The return value is ignored.
  `this` | S | The object to use as `this` in `f`.

#### get(key){*} inherited

src/ol/object.js, line 101

  Gets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.

  ##### Returns:

  Value.

#### getArray(){Array.<T>}

src/ol/collection.js, line 94

  Get a reference to the underlying Array object. Warning: if the array is mutated, no events will be dispatched by the collection, and the collection's "length" property won't be in sync with the actual length of the array.

  ##### Returns:

  Array.

#### getKeys(){Array.<string>} inherited

src/ol/object.js, line 115

  Get a list of object property names.

  ##### Returns:

  List of property names.

#### getLength(){number}

src/ol/collection.js, line 116

  Get the length of this collection.

  ##### Returns:

  The length of the array.

#### getProperties(){Object.<string, *>} inherited

src/ol/object.js, line 125

  Get an object of all property names and values.

  ##### Returns:

  Object.

#### getRevision(){number} inherited

src/ol/observable.js, line 84

  Get the version number for this object. Each time the object is modified, its version number will be incremented.

  ##### Returns:

  Revision.

#### insertAt(index, elem)

src/ol/collection.js, line 127

  Insert an element at the provided index.

  Name | Type | Description
  --- | --- | ---
  `index` | number | Index.
  `elem` | T | Element.

#### item(index){T}

src/ol/collection.js, line 105

  Get the element at the provided index.

  Name | Type | Description
  --- | --- | ---
  `index` | number | Index.

  ##### Returns:

  Element.

#### on(type, listener, opt_this){ol.EventsKey|Array.<ol.EventsKey>} inherited

src/ol/observable.js, line 99

  Listen for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### once(type, listener, opt_this){ol.EventsKey|Array.<ol.EventsKey>} inherited

src/ol/observable.js, line 124

  Listen once for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### pop(){T|undefined}

src/ol/collection.js, line 141

  Remove the last element of the collection and return it. Return `undefined` if the collection is empty.

  ##### Returns:

  Element.

#### push(elem){number}

src/ol/collection.js, line 152

  Insert the provided element at the end of the collection.

  Name | Type | Description
  --- | --- | ---
  `elem` | T | Element.

  ##### Returns:

  New length of the collection.

#### remove(elem){T|undefined}

src/ol/collection.js, line 165

  Remove the first occurrence of an element from the collection.

  Name | Type | Description
  --- | --- | ---
  `elem` | T | Element.

  ##### Returns:

  The removed element or undefined if none found.

#### removeAt(index){T|undefined}

src/ol/collection.js, line 184

  Remove the element at the provided index and return it. Return `undefined` if the collection does not contain this index.

  Name | Type | Description
  --- | --- | ---
  `index` | number | Index.

  ##### Returns:

  Value.

#### set(key, value, opt_silent) inherited

src/ol/object.js, line 150

  Sets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `value` | * | Value.
  `silent` | boolean | Update without triggering an event.

#### setAt(index, elem)

src/ol/collection.js, line 200

  Set the element at the provided index.

  Name | Type | Description
  --- | --- | ---
  `index` | number | Index.
  `elem` | T | Element.

#### setProperties(values, opt_silent) inherited

src/ol/object.js, line 170

  Sets a collection of key-value pairs. Note that this changes any existing properties and adds new ones (it does not remove any existing properties).

  Name | Type | Description
  --- | --- | ---
  `values` | Object.<string, *> | Values.
  `silent` | boolean | Update without triggering an event.

#### un(type, listener, opt_this) inherited

src/ol/observable.js, line 147

  Unlisten for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | The object which was used as `this` by the `listener`.

#### unset(key, opt_silent) inherited

src/ol/object.js, line 184

  Unsets a property.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `silent` | boolean | Unset without triggering an event.