【发布时间】:2020-08-14 08:22:50
【问题描述】:
我有这个方法可以从 2 个数组中创建一对数组
function join<T, K> (arr1: T[], arr2: K[]): [T, K][]{
const res = [];
arr1.forEach(p => {
arr2.forEach(n => {
res.push([p, n])
})
})
return [];
}
//I use it to create test data like this
// [["a",1], ["a", 2], ["b", 1], ["b", 2]]
join(["a", "b"], [1, 2]).forEach(([char, num]) => {
it(`should do something with ${char} and ${num}`, () => {
//assert here
})
})
是否有一种简单的方法可以轻松地将 join 函数的功能概括为 2 个以上的参数并保持类型检查?
也许使用休息运算符...arr 和/或一些重载?
【问题讨论】:
-
作为旁注,您的
join函数实际上计算了两个数组的笛卡尔积。有时称为cross-product或简称为cross。