@stdlib/iter
Version:
Standard iterator utilities.
58 lines (42 loc) • 1.63 kB
Plain Text
{{alias}}( iterator, predicate, fcn[, thisArg] )
Returns an iterator which invokes a function for each iterated value before
returning the iterated value until either a predicate function returns false
or the iterator has iterated over all values.
The condition is evaluated *after* executing the provided function; thus,
`fcn` *always* executes at least once.
When invoked, both input functions are provided two arguments:
- value: iterated value.
- index: iteration index (zero-based).
If an environment supports Symbol.iterator, the returned iterator is
iterable.
Parameters
----------
iterator: Object
Input iterator.
predicate: Function
Function which indicates whether to continue iterating.
fcn: Function
Function to invoke for each iterated value.
thisArg: any (optional)
Execution context.
Returns
-------
iterator: Object
Iterator.
iterator.next(): Function
Returns an iterator protocol-compliant object containing the next
iterated value (if one exists) and a boolean flag indicating whether the
iterator is finished.
iterator.return( [value] ): Function
Finishes an iterator and returns a provided value.
Examples
--------
> function predicate( v ) { return v === v };
> function f( v ) { if ( v !== v ) { throw new Error( 'beep' ); } };
> var it = {{alias}}( {{alias: /random/iter/randu}}(), predicate, f );
> var r = it.next().value
<number>
> r = it.next().value
<number>
See Also
--------