12 lines
378 B
TypeScript
12 lines
378 B
TypeScript
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 a = iteratorA.next();
|
|
let b = iteratorB.next();
|
|
while (!a.done && !b.done) {
|
|
yield [a.value, b.value];
|
|
a = iteratorA.next();
|
|
b = iteratorB.next();
|
|
}
|
|
}
|