Options
All
  • Public
  • Public/Protected
  • All
Menu

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

Index

Type aliases

HashFunction

HashFunction: (value?: any) => any

Hash function.

param

iterated value

returns

hash value

Type declaration

    • (value?: any): any
    • Parameters

      • Optional value: any

      Returns any

Iterator

Iterator: Iter | IterableIterator

Functions

Export assignment iterIntersectionByHash

  • Returns an iterator which returns the intersection of two or more iterators according to a hash function.

    Notes

    • An iterated value is considered "unique" if the hash function returns a unique hash value for that iterated value. Beware that this may result in unexpected behavior. Namely, only the first iterated value mapping to a particular hash function result is returned, even if subsequent values, while mapping to the same hash, are different. Accordingly, iteration order does matter.
    • A returned iterator internally buffers unique hashes, along with the first iterated value resolving to a hash, and, thus, has O(N) memory requirements, where N is the length of the first iterator.
    • Do not provide iterators having infinite length.
    • If an environment supports Symbol.iterator and all provided iterators are iterable, the returned iterator is iterable.

    Parameters

    • iter0: Iterator

      first iterator

    • iter1: Iterator

      second iterator

    • hashFcn: HashFunction

      hash function

    • Optional thisArg: any

      hash function execution context

    Returns Iterator

    iterator

    Example

    var array2iterator = require( `@stdlib/array/to-iterator` );
    
    function hashFcn( v ) {
        return v.toString();
    }
    
    var it1 = array2iterator( [ 1, 2, 1, 2, 4 ] );
    var it2 = array2iterator( [ 1, 2, 5, 2, 3 ] );
    
    var iter = iterIntersectionByHash( it1, it2, hashFcn );
    
    var v = iter.next().value;
    // returns 1
    
    v = iter.next().value;
    // returns 2
    
    var bool = iter.next().done;
    // returns true
  • Returns an iterator which returns the intersection of three or more iterators according to a hash function.

    Notes

    • An iterated value is considered "unique" if the hash function returns a unique hash value for that iterated value. Beware that this may result in unexpected behavior. Namely, only the first iterated value mapping to a particular hash function result is returned, even if subsequent values, while mapping to the same hash, are different. Accordingly, iteration order does matter.
    • A returned iterator internally buffers unique hashes, along with the first iterated value resolving to a hash, and, thus, has O(N) memory requirements, where N is the length of the first iterator.
    • Do not provide iterators having infinite length.
    • If an environment supports Symbol.iterator and all provided iterators are iterable, the returned iterator is iterable.

    Parameters

    • iter0: Iterator

      first iterator

    • iter1: Iterator

      second iterator

    • iter2: Iterator

      third iterator

    • hashFcn: HashFunction

      hash function

    • Optional thisArg: any

      hash function execution context

    Returns Iterator

    iterator

    Example

    var array2iterator = require( `@stdlib/array/to-iterator` );
    
    function hashFcn( v ) {
        return v.toString();
    }
    
    var it1 = array2iterator( [ 1, 2, 1, 2, 4 ] );
    var it2 = array2iterator( [ 1, 2, 5, 2, 3 ] );
    var it3 = array2iterator( [ 2, 2, 6, 1, 1 ] );
    
    var iter = iterIntersectionByHash( it1, it2, it3, hashFcn );
    
    var v = iter.next().value;
    // returns 1
    
    v = iter.next().value;
    // returns 2
    
    var bool = iter.next().done;
    // returns true
  • Returns an iterator which returns the intersection of four or more iterators according to a hash function.

    Notes

    • An iterated value is considered "unique" if the hash function returns a unique hash value for that iterated value. Beware that this may result in unexpected behavior. Namely, only the first iterated value mapping to a particular hash function result is returned, even if subsequent values, while mapping to the same hash, are different. Accordingly, iteration order does matter.
    • A returned iterator internally buffers unique hashes, along with the first iterated value resolving to a hash, and, thus, has O(N) memory requirements, where N is the length of the first iterator.
    • Do not provide iterators having infinite length.
    • If an environment supports Symbol.iterator and all provided iterators are iterable, the returned iterator is iterable.

    Parameters

    Returns Iterator

    iterator

    Example

    var array2iterator = require( `@stdlib/array/to-iterator` );
    
    function hashFcn( v ) {
        return v.toString();
    }
    
    var it1 = array2iterator( [ 1, 2, 1, 2, 4 ] );
    var it2 = array2iterator( [ 1, 2, 5, 2, 3 ] );
    var it3 = array2iterator( [ 2, 2, 6, 1, 1 ] );
    var it4 = array2iterator( [ 7, 8, 9, 2, 1 ] );
    
    var iter = iterIntersectionByHash( it1, it2, it3, it4, hashFcn );
    
    var v = iter.next().value;
    // returns 1
    
    v = iter.next().value;
    // returns 2
    
    var bool = iter.next().done;
    // returns true
  • Returns an iterator which returns the intersection of five or more iterators according to a hash function.

    Notes

    • An iterated value is considered "unique" if the hash function returns a unique hash value for that iterated value. Beware that this may result in unexpected behavior. Namely, only the first iterated value mapping to a particular hash function result is returned, even if subsequent values, while mapping to the same hash, are different. Accordingly, iteration order does matter.
    • A returned iterator internally buffers unique hashes, along with the first iterated value resolving to a hash, and, thus, has O(N) memory requirements, where N is the length of the first iterator.
    • Do not provide iterators having infinite length.
    • If an environment supports Symbol.iterator and all provided iterators are iterable, the returned iterator is iterable.

    Parameters

    Returns Iterator

    iterator

    Example

    var array2iterator = require( `@stdlib/array/to-iterator` );
    
    function hashFcn( v ) {
        return v.toString();
    }
    
    var it1 = array2iterator( [ 1, 2, 1, 2, 4 ] );
    var it2 = array2iterator( [ 1, 2, 5, 2, 3 ] );
    var it3 = array2iterator( [ 2, 2, 6, 1, 1 ] );
    var it4 = array2iterator( [ 7, 8, 9, 2, 1 ] );
    var it5 = array2iterator( [ 0, 2, 0, 1, 0 ] );
    
    var iter = iterIntersectionByHash( it1, it2, it3, it4, it5, hashFcn );
    
    var v = iter.next().value;
    // returns 1
    
    v = iter.next().value;
    // returns 2
    
    var bool = iter.next().done;
    // returns true
  • Returns an iterator which returns the intersection of two or more iterators according to a hash function.

    Notes

    • An iterated value is considered "unique" if the hash function returns a unique hash value for that iterated value. Beware that this may result in unexpected behavior. Namely, only the first iterated value mapping to a particular hash function result is returned, even if subsequent values, while mapping to the same hash, are different. Accordingly, iteration order does matter.
    • A returned iterator internally buffers unique hashes, along with the first iterated value resolving to a hash, and, thus, has O(N) memory requirements, where N is the length of the first iterator.
    • Do not provide iterators having infinite length.
    • If an environment supports Symbol.iterator and all provided iterators are iterable, the returned iterator is iterable.

    Parameters

    • iter0: Iterator

      first iterator

    • iter1: Iterator

      second iterator

    • Rest ...args: Array<any>

      subsequent iterators followed by a hash function and an optional hash function execution context

    Returns Iterator

    iterator

    Example

    var array2iterator = require( `@stdlib/array/to-iterator` );
    
    function hashFcn( v ) {
        return v.toString();
    }
    
    var it1 = array2iterator( [ 1, 2, 1, 2, 4 ] );
    var it2 = array2iterator( [ 1, 2, 5, 2, 3 ] );
    
    var iter = iterIntersectionByHash( it1, it2, hashFcn );
    
    var v = iter.next().value;
    // returns 1
    
    v = iter.next().value;
    // returns 2
    
    var bool = iter.next().done;
    // returns true