new ArraySet(list)
ArraySet is a Set data structure (items must be unique within the set) that also maintains order.
This allows specific items to be easily added or removed from the Set.
Item equality (and uniqueness) is determined by the behavior of Array.indexOf
.
This used primarily by the Input subsystem.
Parameters
Name | Type | Argument | Default | Description |
---|---|---|---|---|
list |
Array.<any> |
<optional> |
(new array) | The backing array: if specified the items in the list must be unique, per |
- Source code: utils/ArraySet.js (Line 19)
Public Properties
-
first :any
-
Returns the first item and resets the cursor to the start.
- Source code: utils/ArraySet.js (Line 231)
-
list : Array.<any>
-
The backing array.
Type
- Array.<any>
- Source code: utils/ArraySet.js (Line 32)
-
next :any
-
Returns the the next item (based on the cursor) and advances the cursor.
- Source code: utils/ArraySet.js (Line 256)
-
position : integer
-
Current cursor position as established by
first
andnext
.- Source code: utils/ArraySet.js (Line 26)
-
total : integer
-
Number of items in the ArraySet. Same as
list.length
.- Source code: utils/ArraySet.js (Line 217)
Public Methods
-
add(item) → {any}
-
Adds a new element to the end of the list.
If the item already exists in the list it is not moved.Parameters
Name Type Description item
any The element to add to this list.
Returns
any -The item that was added.
- Source code: utils/ArraySet.js (Line 38)
-
callAll(key, parameter)
-
Calls a function on all members of this list, using the member as the context for the callback.
If the
key
property is present it must be a function.
The function is invoked using the item as the context.Parameters
Name Type Argument Description key
string The name of the property with the function to call.
parameter
* <repeatable>
Additional parameters that will be passed to the callback.
- Source code: utils/ArraySet.js (Line 159)
-
exists(item) → {boolean}
-
Checks for the item within this list.
Parameters
Name Type Description item
any The element to get the list index for.
Returns
boolean -True if the item is found in the list, otherwise false.
- Source code: utils/ArraySet.js (Line 95)
-
getByKey(property, value) → {any}
-
Gets an item from the set based on the property strictly equaling the value given.
Returns null if not found.Parameters
Name Type Description property
string The property to check against the value.
value
any The value to check if the property strictly equals.
Returns
any -The item that was found, or null if nothing matched.
- Source code: utils/ArraySet.js (Line 70)
-
getIndex(item) → {integer}
-
Gets the index of the item in the list, or -1 if it isn't in the list.
Parameters
Name Type Description item
any The element to get the list index for.
Returns
integer -The index of the item or -1 if not found.
- Source code: utils/ArraySet.js (Line 57)
-
remove(item) → {any}
-
Removes the given element from this list if it exists.
Parameters
Name Type Description item
any The item to be removed from the list.
Returns
any -item - The item that was removed.
- Source code: utils/ArraySet.js (Line 119)
-
removeAll(destroy)
-
Removes every member from this ArraySet and optionally destroys it.
Parameters
Name Type Argument Default Description destroy
boolean <optional>
false Call
destroy
on each member as it's removed from this set.- Source code: utils/ArraySet.js (Line 185)
-
reset()
-
Removes all the items.
- Source code: utils/ArraySet.js (Line 108)
-
setAll(key, value)
-
Sets the property
key
to the given value on all members of this list.Parameters
Name Type Description key
any The property of the item to set.
value
any The value to set the property to.
- Source code: utils/ArraySet.js (Line 138)