Implement sequence
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
export function* zip<T, B>(value: Iterable<T>, items: Iterable<B>): Iterable<[T, B]> {
|
||||
const iteratorA = value[Symbol.iterator]();
|
||||
const iteratorB = items[Symbol.iterator]();
|
||||
let {value: itA, done: doneA} = iteratorA.next();
|
||||
let {value: itB, done: doneB} = iteratorB.next();
|
||||
while (!doneA && !doneB) {
|
||||
yield [itA, itB];
|
||||
let a = iteratorA.next();
|
||||
let b = iteratorB.next();
|
||||
while (!a.done && !b.done) {
|
||||
yield [a.value, b.value];
|
||||
a = iteratorA.next();
|
||||
b = iteratorB.next();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user