UNPKG

iter-tools-es

Version:
25 lines (20 loc) 446 B
const { iterableCurry } = require('../../internal/iterable.js'); function* __distinct(source, selector) { const set = new Set(); for (const value of source) { const key = selector ? selector(value) : value; if (set.has(key)) { continue; } set.add(key); yield value; } } exports.__distinct = __distinct; const distinct = iterableCurry(__distinct, { minArgs: 0, maxArgs: 1 }); exports.distinct = distinct;