Class: Collection

saij/core/Collection~Collection


import Collection from 'saij/core/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 Collection(opt_array, opt_options)

src/saij/core/Collection.js, line 63
Name Type Description
array Array.<T>

Array.

options

Collection options.

Name Type Default Description
unique boolean false

Disallow the same item from being added to the collection twice.

Methods

clear()

src/saij/core/Collection.js, line 101

Remove all elements from the collection.

extend(arr){module:saij/core/Collection~Collection.<T>}

src/saij/core/Collection.js, line 114

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(func)

src/saij/core/Collection.js, line 128

Iterate over each element, calling the provided callback.

Name Type Description
func 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.

getArray(){Array.<T>}

src/saij/core/Collection.js, line 143

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.

getLength(){number}

src/saij/core/Collection.js, line 163

Get the length of this collection.

Returns:
The length of the array.

insertAt(index, elem)

src/saij/core/Collection.js, line 173

Insert an element at the provided index.

Name Type Description
index number

Index.

elem T

Element.

item(index){T}

src/saij/core/Collection.js, line 153

Get the element at the provided index.

Name Type Description
index number

Index.

Returns:
Element.

pop(){T|undefined}

src/saij/core/Collection.js, line 189

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

Returns:
Element.

push(elem){number}

src/saij/core/Collection.js, line 199

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/saij/core/Collection.js, line 214

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/saij/core/Collection.js, line 231

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.

setAt(index, elem)

src/saij/core/Collection.js, line 246

Set the element at the provided index.

Name Type Description
index number

Index.

elem T

Element.