{{alias}}( iter0, ...iterator, hashFcn[, thisArg] ) Returns an iterator which returns the intersection of two or more iterators according to a hash function. 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: Object Input iterator. iterator: ...Object Input iterators. hashFcn: Function Hash function. 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 -------- > var it1 = {{alias:@stdlib/array/to-iterator}}( [ 1, 2, 1, 2, 4 ] ); > var it2 = {{alias:@stdlib/array/to-iterator}}( [ 1, 2, 5, 2, 3 ] ); > function f( v ) { return v.toString(); }; > var it = {{alias}}( it1, it2, f ); > var v = it.next().value 1 > v = it.next().value 2 > var bool = it.next().done true See Also --------