Guest User

Untitled

a guest
Dec 17th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.40 KB | None | 0 0
  1. // zip for 2 arrays
  2. function zip2<A, B>(a: A[], b: B[]): Array<[A, B]> {
  3. return a.map((_, c) => [a, b].map(row => row[c])) as Array<[A, B]>;
  4. }
  5.  
  6. // zip for any number of arrays
  7. type Zip<T extends unknown[][]> = { [I in keyof T]: T[I] extends (infer U)[] ? U : never }[];
  8. function zip<T extends unknown[][]>(...args: T): Zip<T> {
  9. return <Zip<T>><unknown>(args[0].map((_, c) => args.map(row => row[c])));
  10. }
Add Comment
Please, Sign In to add comment