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