Exercise 17: Zip Multiple Arrays

Problem Statement

Create a function `zip(...arrays)` that zips multiple arrays (combine by index). Example: zip([1, 2], ["a", "b"], [true, false]) → [[1, "a", true], [2, "b", false]]

Sample Output:

zip([1, 2], ["a", "b"], [true, false]) => [[1, "a", true], [2, "b", false]]
zip([1], [2, 3]) => [[1, 2], [undefined, 3]]

Solution

const zip = (...arrays) => {
  const maxLen = Math.max(...arrays.map(arr => arr.length));
  return Array.from({ length: maxLen }, (_, i) => arrays.map(arr => arr[i]));
};

Explanation

Overall Goal:

  • Multiple arrays ko index-wise combine karna.

Real world:

  • Data transformation: combine columns.
  • Parallel processing: combine results.