All files / src/iterators DistinctIterator.js

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20        16x       12x 12x 64x 11x     53x 53x        
import Iterator from './Iterator';
 
export default class DistinctIterator extends Iterator {
  constructor(arr) {
    super(arr);
  }
 
  *[Symbol.iterator]() {
    let set = new Set();
    for (let item of this.arr) {
      if (set.has(item)) {
        continue;
      }
 
      set.add(item);
      yield item;
    }
  }
}