Return all of the values from this generator as an array. You do not want to call this on an infinite generator (for obvious reasons); consider using IEnhancements.slice or IEnhancements.limit to limit the size before calling this.
Concatenates generators (or iterators or iterables).
Ensures that any supplied generators are terminated when this is terminated.
Returns false
and terminates this generator if the predicate is false for any of the generator's
yielded values.
If the generator terminates without having failed the predicate, true
is returned.
predicate to apply to each yielded value.
Optional value to supply as context (this
) for the predicate
Return a new EnhancedGenerator that yields only the values that satisfy the predicate f.
f receives the value and a sequential index.
Optional context to be passed as this
to the predicate.
Flatten the values yielded by this generator to level depth. Produces a generator that yields the individual values at each level in depth-first order. Any iterable (including Array) or iterator will be traversed and its values yielded.
The return type is currently over-broad
(default = 1)
Flatten the values yielded by applying the function to the values yielded by the generator to level depth. Produces a generator that yields the individual values at each level in depth-first order. Any iterable (including Array) or iterator will be traversed and its values yielded.
The return type is currently over-broad
Operate on each value produced by this generator. The function f is called with two values, the value yielded by this generator and a sequential index.
Value to be supplied as context this
for function f.
Trivial, but handy, same as Array.prototype.join.
(default = ',').
See also EnhancedGenerator.join
Limit the number of values that can be generated. A RangeError
is thrown if this limit is
exceeded. This is useful when you wish to abort an excessively large computation.
Apply the function to each value yielded by this generator. It is called with two arguments, the value yielded, and a sequential index. The return value is a generator that yields the values produced by the function.
Optional value to be supplied as context this
for function f.
Like Array.prototype.reduce
, but the 3rd argument to the reducing function ("array") is omitted
because there is no array.
Like Array.prototype.reduce
, but the 3rd argument to the reducing function ("array") is omitted
because there is no array.
Returns a new generator that repeats the supplied value after this generator completes.
the value to repeat
The number repetitions; the default is infinite.
Returns a new generator that repeats the last value returned by this (or undefined
if this
did not return any values).
Return a new EnhancedGenerator that only yields the indicated values, skipping start initial values and continuing until the end.
Returns true
and terminates the generator if the predicate is true for any of the generator's
yielded values.
If the generator terminates without having satisfied the predicate, false
is returned.
predicate to apply to each yielded value.
Optional value to supply as context (this
) for the predicate
Sorts the supplied values and returns a sorted array.
a comparison function
Generated using TypeDoc
Interface for enhanced operations, distinct from implementation. These apply to
Iterable
orAsyncIterable
objects, giving them the capability of acting similarly to lists, directly invoking methods like .map() or .filter().The type parameter S is either 'sync' or 'async', and controls whether synchronous or asynchronous interfaces are used. The {@link ReturnValue|ReturnValue<T,S>} expands to T or
Promise<
T>
, accordingly.See Sync.Mixin and Async.Mixin.