最近遇到了一个不错的 TS 面试题,分享。
这道题有 3 每一个层次,我们一层一层地看。
第一层的要求如下:
实现一个 zip 函数,两个数组的元素按顺序合并,如输入 [1,2,3], [4,5,6] 时,返回 [[1,4], [2,5],[3,6]
这一层是每次从两个数组中取一个元素,合并后放入数组,然后继续处理下一个,递归到这个过程中,直到数组为空。
function zip(target, source) {
if (!target.length || !source.length) return [];
const [one, ...rest1] = target;
const [other, ...rest2] = source;
return [[one, other], ...zip(rest1, 第二);
}
结果是对的:
第一层比较简单,然后我们来看看第二层的要求:
给这个 zip 函数定义 ts 类型(两种写法)
函数有两种定义形式:
直接通过 function 声明函数:
function func() {}
并声明匿名函数,然后赋值变量:
const func = () =