编辑代码

/**
 * @file 计算数组笛卡尔积
 */


function product(xList: number[], yList: number[]): [number, number][] {
    // 补全内部实现
    const res: [number, number][] = [];
    for (let i = 0; i < xList.length; i++) {
        for (let j = 0; j < yList.length; j++) {
            res.push([xList[i], yList[j]]);
        }
    }
    return res;
    // return xList.reduce((v, t) => {
    //     return v.concat(yList.map((item) => [t, item]) as [number, number][]);
    // }, [] as [number, number][]);
}

// 示例
console.log(product([5, 6, 87], [27, 96, 6545])) // [[1, 3], [1, 4], [2, 3], [2, 4]]