Options
All
  • Public
  • Public/Protected
  • All
Menu

External module "iter/unique-by/docs/types/index.d"

Index

Type aliases

Functions

Type aliases

Iterator

Iterator: Iter | IterableIterator

Predicate

Predicate: (a: any, b: any) => boolean

Tests whether a value is different from a previously identified unique value.

param

a previously identified unique value

param

the value whose uniqueness is being determined

returns

boolean indicating whether a value is different

Type declaration

    • (a: any, b: any): boolean
    • Parameters

      • a: any
      • b: any

      Returns boolean

Functions

Export assignment iterUniqueBy

  • Returns an iterator which returns unique values according to a predicate function.

    Notes

    • A returned iterator internally buffers unique values and, thus, has O(N) memory requirements.
    • A predicate function is invoked for each iterated value against each value in an internal buffer consisting of previously identified unique values. Thus, as the number of unique values grows, so, too, does the number of predicate function invocations per iterated value.
    • An iterated value is considered "unique" if the predicate function returns truthy values for all comparisons of the iterated value with each value in the internal buffer.
    • If an environment supports Symbol.iterator and a provided iterator is iterable, the returned iterator is iterable.

    Parameters

    • iterator: Iterator

      input iterator

    • predicate: Predicate

      predicate function

    • Optional thisArg: any

      predicate function execution context

    Returns Iterator

    iterator

    Example

    var array2iterator = require( `@stdlib/array/to-iterator` );
    
    function predicate( a, b ) {
        return ( a !== b );
    }
    
    var iter = iterUniqueBy( array2iterator( [ 1, 2, 1, 2, 4 ] ), predicate );
    
    var v = iter.next().value;
    // returns 1
    
    v = iter.next().value;
    // returns 2
    
    v = iter.next().value;
    // returns 4
    
    var bool = iter.next().done;
    // returns true