array/zip.jsjavascript
/**
 * 按索引组合多个数组,缺失位置填充 undefined。
 * @function zip
 * @memberof module:array
 * @param {...Array} arrays 要组合的数组
 * @returns {Array[]} 按索引组合后的二维数组
 * @throws {TypeError} 任一参数不是数组时抛出
 */
function zip(...arrays) {
  if (arrays.some(array => !Array.isArray(array))) throw new TypeError('all arguments must be arrays')
  const length = Math.max(0, ...arrays.map(array => array.length))
  return Array.from({ length }, (argArray, index) => arrays.map(array => array[index]))
}

export default zip