Function zip

  • Takes two iterables or asynchronous iterable and returns a new iterable or asynchronous iterable with the length of the shortest iterable with tuples containing the items from both.

    Example

    const zipNumbers = zip([0, 1, 2]);
    zipNumbers([3, 4, 5]); // [[0, 3], [1, 4], [2, 5]]

    Returns

    Curried function with iterableFirst in context.

    Type Parameters

    • FirstIterable extends AsynchronousIterable<unknown>

    Parameters

    • iterableFirst: FirstIterable

      One of the iterables to be zipped.

    Returns (<SecondIterable>(iterableSecond: SecondIterable) => FirstIterable extends AsynchronousIterable<FirstItem> ? SecondIterable extends AsynchronousIterable<SecondItem> ? FirstIterable extends AsyncIterable<FirstItem> ? AsyncIterableIterator<readonly [FirstItem, SecondItem]> : SecondIterable extends AsyncIterable<SecondItem> ? AsyncIterableIterator<readonly [FirstItem, SecondItem]> : IterableIterator<readonly [FirstItem, SecondItem]> : never : never)

      • <SecondIterable>(iterableSecond: SecondIterable): FirstIterable extends AsynchronousIterable<FirstItem> ? SecondIterable extends AsynchronousIterable<SecondItem> ? FirstIterable extends AsyncIterable<FirstItem> ? AsyncIterableIterator<readonly [FirstItem, SecondItem]> : SecondIterable extends AsyncIterable<SecondItem> ? AsyncIterableIterator<readonly [FirstItem, SecondItem]> : IterableIterator<readonly [FirstItem, SecondItem]> : never : never
      • Type Parameters

        • SecondIterable extends AsynchronousIterable<unknown>

        Parameters

        • iterableSecond: SecondIterable

        Returns FirstIterable extends AsynchronousIterable<FirstItem> ? SecondIterable extends AsynchronousIterable<SecondItem> ? FirstIterable extends AsyncIterable<FirstItem> ? AsyncIterableIterator<readonly [FirstItem, SecondItem]> : SecondIterable extends AsyncIterable<SecondItem> ? AsyncIterableIterator<readonly [FirstItem, SecondItem]> : IterableIterator<readonly [FirstItem, SecondItem]> : never : never