All files / src/iterators TakeWhileIterator.js

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18        31x       25x 57x 42x   15x          
import SkipIterator from './WhereIterator';
 
export default class TakeWhileIterator extends SkipIterator {
  constructor(arr, condition) {
    super(arr, condition);
  }
 
  *[Symbol.iterator]() {
    for (let item of this.arr) {
      if (this.condition(item)) {
        yield item;
      } else {
        break;
      }
    }
  }
}