Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // zip for 2 arrays
- function zip2<A, B>(a: A[], b: B[]): Array<[A, B]> {
- return a.map((_, c) => [a, b].map(row => row[c])) as Array<[A, B]>;
- }
- // zip for any number of arrays
- type Zip<T extends unknown[][]> = { [I in keyof T]: T[I] extends (infer U)[] ? U : never }[];
- function zip<T extends unknown[][]>(...args: T): Zip<T> {
- return <Zip<T>><unknown>(args[0].map((_, c) => args.map(row => row[c])));
- }
Add Comment
Please, Sign In to add comment