reports/frontend/node_modules/es-toolkit/dist/compat/array/zip.mjs
jtricerolph 1c411e402e Add settings page for managing forecasting API key and URL via UI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-20 14:37:36 +00:00

30 lines
1.2 KiB
JavaScript

import { zip as zip$1 } from "../../array/zip.mjs";
import { isArrayLikeObject } from "../predicate/isArrayLikeObject.mjs";
//#region src/compat/array/zip.ts
/**
* Combines multiple arrays into a single array of tuples.
*
* This function takes multiple arrays and returns a new array where each element is a tuple
* containing the corresponding elements from the input arrays. If the input arrays are of
* different lengths, the resulting array will have the length of the longest input array,
* with undefined values for missing elements.
*
* @template T
* @param arrays - The arrays to zip.
* @returns A new array of tuples containing the corresponding elements from the input arrays.
*
* @example
* const arr1 = [1, 2, 3];
* const arr2 = ['a', 'b', 'c'];
* const arr3 = [true, false];
* const arr4 = [null, null, null];
* const arr5 = [undefined, undefined, undefined];
* const result = zip(arr1, arr2, arr3, arr4, arr5);
* // result will be [[1, 'a', true, null, undefined], [2, 'b', false, null, undefined], [3, 'c', undefined, null, undefined]]
*/
function zip(...arrays) {
if (!arrays.length) return [];
return zip$1(...arrays.filter((group) => isArrayLikeObject(group)));
}
//#endregion
export { zip };