Implement sequence
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
export function* dropUntil<T>(value: Iterable<T>, predicate: (it: T) => boolean): Iterable<T> {
|
||||
const iterator = value[Symbol.iterator]();
|
||||
let {value: it, done} = iterator.next();
|
||||
while (!done) {
|
||||
if (predicate(it)) break;
|
||||
({value: it, done} = iterator.next());
|
||||
let next = iterator.next();
|
||||
while (!next.done && !predicate(next.value)) {
|
||||
next = iterator.next();
|
||||
}
|
||||
while (!done) {
|
||||
yield it;
|
||||
({value: it, done} = iterator.next());
|
||||
while (!next.done) {
|
||||
yield next.value;
|
||||
next = iterator.next();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user