Constructor
# new DuList()
Constructs a new DuList object
Properties:
Name | Type | Description |
---|---|---|
isCollection |
boolean
|
true if the original list is an After Effects Collection, false otherwise |
isArray |
boolean
|
true if the original list is an Array, false otherwise |
Members
Boolean
# readonly isCollection
True if the original list is an After Effects Collection, false otherwise.
Boolean
# readonly valid
True if the iterator is between 0 and length-1. Note that on creation, the iterator is always invalid, but calling
DuList.next()
moves it to the beginning and makes it valid.
Methods
# static isAECollection(collection) → {boolean}
Checks if the param is an AE collection or an Array
Parameters:
Name | Type | Description |
---|---|---|
collection |
Array
|
Collection
|
The list to check |
true if collection is a collection, false if it's an array
boolean
# static isList(list) → {boolean}
Checks if this is an Array or an After Effects collection type or a
DuList
Parameters:
Name | Type | Description |
---|---|---|
list |
Array
|
Collection
|
The list to check |
true if this is a Cllection or an Array or a
DuList
boolean
# at(index) → {object}
Accessor. First item is always 0, last is always length()-1
Does not move the iterator to the index; to move the iterator use
Does not move the iterator to the index; to move the iterator use
DuList.goTo
instead.
Parameters:
Name | Type | Description |
---|---|---|
index |
int
|
The index of the item. If it is out of range (negative or > length()-1), returns null |
The item at the given index.
object
# concat(other) → {DuList}
Mergeserge two lists.
This method does not change the existing list, but instead returns a new list.
This method does not change the existing list, but instead returns a new list.
Parameters:
Name | Type | Description |
---|---|---|
other |
Array
|
DuList
|
The other list. |
The new list.
# contains(value, comparisonFunctionopt) → {Boolean}
Checks if the list contains the item
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
value |
*
|
The value to find. Must be compatible with the == operand if you don't provide a comparison function | |
comparisonFunction |
function
|
<optional> |
A function which compares two values which returns true if the values are considered the same. |
Boolean
# convertToArray()
Converts the stored list to an Array if it was a Collection.
This enables the modification of the list, but changes in the list will not be reflected in the application (if a layer is removed from the list, it is not removed in the application).
This enables the modification of the list, but changes in the list will not be reflected in the application (if a layer is removed from the list, it is not removed in the application).
# do(callBack, reverseopt)
Executes a function on each item of the List
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
callBack |
function
|
The function to execute, which takes one parameter: an item of the list | ||
reverse |
Bool
|
<optional> |
false | Set this to true to iterate from the end. |
# equals(other, floatPrecisionopt) → {boolean}
Compares two arrays.
The items in the arrays must be compatible with the == operand if you don't provide a comparison function
The items in the arrays must be compatible with the == operand if you don't provide a comparison function
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
other |
Array
|
Collection
|
DuList
|
The other list | ||
floatPrecision |
int
|
<optional> |
-1 | The precision for (float) number comparison, number of decimals. Set to -1 to not use. |
true if the two arrays contain the same values
boolean
# getDuplicates() → {DuList}
Returns all duplicated values found in the list
The duplicated values. An empty list for Ae Collections as they can't have duplicated items.
# goTo(index) → {*}
Sets the iterator on the index
Parameters:
Name | Type | Description |
---|---|---|
index |
int
|
The index |
The item at index, or null if the index is invalid
*
# goToEnd() → {Object}
Goes to the end of the Iterator
The item at the end, or null if length is 0
Object
# goToStart() → {Object}
Goes to the start of the Iterator
The item at the start, or null if length is 0
Object
# hasDuplicates() → {boolean}
Checks if the list has duplicated values
true if the list has duplicated values. Always false for Ae Collections as they can't have duplicated items.
boolean
# indexOf(value, comparisonFunctionopt) → {int}
Gets the first index of a value, or -1 if not found
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
value |
*
|
The value to find. Must be compatible with the == operand if you don't provide a comparison function | |
comparisonFunction |
function
|
<optional> |
A function which compares two values which returns true if the values are considered the same. |
The index of the value, -1 if not found
int
# join(separator) → {string}
Reimplementation of the
For collections, the name of the item will be used, or any other property which makes sense as a string list.
Array.join
function.For collections, the name of the item will be used, or any other property which makes sense as a string list.
Parameters:
Name | Type | Description |
---|---|---|
separator |
string
|
The separator to use |
The new length of the list.
string
# merge(arr) → {int}
Merges the new array to the current list.
Note that to the contrary of the
The internal list may be converted to an Array if needed.
Note that to the contrary of the
Array.concat()
method, this does not create a new list, but modifies the current one in place.The internal list may be converted to an Array if needed.
Parameters:
Name | Type | Description |
---|---|---|
arr |
Array.<any>
|
The other array. |
The new length of the list.
int
# mergeUnique(arr, comparisonFunctionopt) → {int}
Merges the new array to the current list.
Will only add items if they're not already in the list.
Note that to the contrary of the
The internal list may be converted to an Array if needed.
Will only add items if they're not already in the list.
Note that to the contrary of the
Array.concat()
method, this does not create a new list, but modifies the current one in place.The internal list may be converted to an Array if needed.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
arr |
Array.<any>
|
DuList
|
The other array/list. | |
comparisonFunction |
function
|
<optional> |
A function which compares two values which returns true if the values are considered the same. |
The new length of the list.
int
# next() → {any}
Increments the Iterator
Must be called at least once to validate the iterator
Must be called at least once to validate the iterator
The next item, or null if there isn't
any
# pop() → {any|null}
Removes the last element of the list and returns it.
The internal list may be converted to an Array if needed.
The internal list may be converted to an Array if needed.
The last element or null if the list is empty.
any
|
null
# previous() → {Object}
Decrements the Iterator
if it's called while valid is false, goes to the end
The previous item, or null if there isn't
Object
# push(element0, element1, elementN) → {int}
Adds one or more elements to the end of the list and returns the new length of the list.
The internal list may be converted to an Array if needed.
The internal list may be converted to an Array if needed.
Parameters:
Name | Type | Description |
---|---|---|
element0 |
any
|
The element(s) to add to the end of the array. |
element1 |
any
|
The element(s) to add to the end of the array. |
element... |
any
|
The element(s) to add to the end of the array. |
elementN |
any
|
The element(s) to add to the end of the array. |
The new length of the list.
int
# pushUnique(comparisonFunctionopt, element0, element1, elementN) → {int}
Adds one or more elements to the end of the list and returns the new length of the list, only if the value is not already in the list
The internal list may be converted to an Array if needed.
The internal list may be converted to an Array if needed.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
comparisonFunction |
function
|
<optional> |
A function which compares two values which returns true if the values are considered the same. |
element0 |
any
|
The element(s) to add to the end of the array. | |
element1 |
any
|
The element(s) to add to the end of the array. | |
element... |
any
|
The element(s) to add to the end of the array. | |
elementN |
any
|
The element(s) to add to the end of the array. |
The new length of the list.
int
# reinitIterator()
Reinits the iterator, i.e. go to index -1 so that the next call to
DuList.next
returns the first item.
# remove(index)
Removes the item at the given index. The internal list may be converted to an Array if needed.
The iterator invalidated.
The iterator invalidated.
Parameters:
Name | Type | Description |
---|---|---|
index |
int
|
The index. |
# removeAll(index, comparisonFunctionopt) → {int}
Removes all occurences of the value from the list. The value must be checkable with the
The internal list may be converted to an Array if needed.
The iterator invalidated.
==
operator if no comparisonFunction
is provided.The internal list may be converted to an Array if needed.
The iterator invalidated.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
index |
int
|
The index. | |
comparisonFunction |
function
|
<optional> |
A function which compares two values which returns true if the values are considered the same. |
The number of items removed.
int
# removeDuplicates(comparisonFunctionopt) → {Array}
Removes all duplicated values from the list, and returns them.
The internal list may be converted to an Array if needed.
The iterator invalidated.
The internal list may be converted to an Array if needed.
The iterator invalidated.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
comparisonFunction |
function
|
<optional> |
A function which compares two values which returns true if the values are considered the same. |
The duplicated (and removed) values. An empty list for Ae Collections as they can't have duplicated items.
Array
# removeOne(index, comparisonFunctionopt)
Removes the first value from the list. The value must be checkable with the
The internal list may be converted to an Array if needed.
The iterator invalidated.
==
operator if no comparisonFunction
is provided.The internal list may be converted to an Array if needed.
The iterator invalidated.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
index |
int
|
The index. | |
comparisonFunction |
function
|
<optional> |
A function which compares two values which returns true if the values are considered the same. |
# replace(what, with, comparisonFunctionopt) → {int}
Replaces all occurences of a value with another value.
The internal list may be converted to an Array if needed.
The internal list may be converted to an Array if needed.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
what |
any
|
The current value | |
with |
any
|
The new value | |
comparisonFunction |
function
|
<optional> |
A function which compares two values which returns true if the values are considered the same. |
The number of occurences which were updated.
int
# sort(compareFunction) → {Array}
Reimplements the Array.sort() method.
The internal list may be converted to an Array if needed.
The iterator is invalidated.
The internal list may be converted to an Array if needed.
The iterator is invalidated.
Parameters:
Name | Type | Description |
---|---|---|
compareFunction |
function
|
Specifies a function that defines the sort order. If omitted, the array elements are converted to strings, then sorted according to each character's Unicode code point value. |
The sorted array. Note that the array is sorted in place, and no copy is made.
Array