list
The "list"
module provides base building blocks for composing lists.
API Reference
Classes
Iterable
Base trait that can be used to compose traits with non-standard enumeration behaviors.
This trait is supposed to be used as part of a composition, since it only
provides custom enumeration behavior to a composed object.
It defines one required _keyValueMap
property, that is used as a hash of
"key-values" to iterate on during enumeration.
Constructors
Iterable()
Constructs an Iterable
object.
Properties
_keyValueMap : Object
Hash map of key-values to iterate over. Required property: that is, the property must be supplied by objects that compose this trait. Note: That this property can be a getter if you need dynamic behavior.
List
An ordered collection (also known as a sequence) disallowing duplicate
elements. List is composed out of Iterable
, therefore it provides custom
enumeration behavior that is similar to array (enumerates only on the
elements of the list).
List is a base trait and is meant to be part of a
composition, since all of its API is private except for the length
property.
Examples:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var MyList = List.compose({ add: function add(item1, item2, /*item3...*/ ) { Array.slice(arguments).forEach( this ._add.bind( this )); }, remove: function remove(item1, item2, /*item3...*/ ) { Array.slice(arguments).forEach( this ._remove.bind( this )); } }); MyList( 'foo' , 'bar' , 'baz' ).length == 3; // true new MyList( 'new' , 'keyword' ).length == 2; // true MyList.apply( null , [1, 2, 3]).length == 3; // true let list = MyList(); list.length == 0; // true list.add(1, 2, 3) == 3; // true |
Constructors
List(element1, element2, ...)
Constructor can takes any number of elements and creates an instance of
List
populated with the specified elements.
Methods
_has(element)
Returns true
if this list contains the specified element
.
_add(element)
Appends the specified element
to the end of this list, if it doesn't
contain it.
Ignores the call if element
is already contained.
_remove(element)
Removes specified element
from this list, if it contains it.
Ignores the call if element
is not contained.
_clear()
Removes all of the elements from this list.
Properties
length : Number
Number of elements in this list.