MST

星途 面试题库

面试题:TypeScript剩余参数与解构赋值在泛型及高阶函数中的深度应用

编写一个高阶函数`combineAndProcess`,它接受一个处理函数`handler`作为第一个参数,然后是任意数量的数组作为剩余参数。每个数组中的元素类型不确定。`handler`函数接受与剩余参数数组数量相同的参数,每个参数是对应数组的一个元素。使用剩余参数、解构赋值以及泛型,实现`combineAndProcess`函数,使其能够将每个数组中对应位置的元素传递给`handler`函数进行处理,并返回处理结果组成的数组。如果某个数组长度小于其他数组,忽略多出的元素。
45.7万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function combineAndProcess<
  T extends unknown[],
  R
>(handler: (...args: T) => R, ...arrays: T[]): R[] {
  const minLength = Math.min(...arrays.map(arr => arr.length));
  return Array.from({ length: minLength }, (_, i) => {
    const values = arrays.map(arr => arr[i]);
    return handler(...values as T);
  });
}