在 JavaScript 中计算两个集合的笛卡尔积
javascriptweb developmentfront end technologyobject oriented programming
笛卡尔积
插入理论笛卡尔积是一种数学运算,它从多个集合中返回一个集合(或乘积集或简称为乘积)。
也就是说,对于集合 A 和 B,笛卡尔积 A × B 是所有有序对 (a, b) 的集合,其中 a ∈ A 且 b ∈ B。
我们需要编写一个 JavaScript 函数,该函数接受两个数组,我们将它们称为 arr1 和 arr2,它们都代表两个不同的集合。
该函数应构造一个包含这两个集合的笛卡尔积的二维数组,并最终返回该数组。
示例
以下是代码 -
const arr1 = [1, 2, 3, 4]; const arr2 = [5, 6, 7, 8]; const cartesianProduct = (arr1 = [], arr2 = []) => { if (!arr1 || !arr2 || !arr1.length || !arr2.length) { return null; }; const res = []; for (let i = 0; i < arr1.length; i += 1) { for (let j = 0; j < arr2.length; j += 1) { res.push([arr1[i], arr2[j]]); }; }; return res; }; console.log(cartesianProduct(arr1, arr2));
输出
以下是控制台上的输出 -
[ [ 1, 5 ], [ 1, 6 ], [ 1, 7 ], [ 1, 8 ], [ 2, 5 ], [ 2, 6 ], [ 2, 7 ], [ 2, 8 ], [ 3, 5 ], [ 3, 6 ], [ 3, 7 ], [ 3, 8 ], [ 4, 5 ], [ 4, 6 ], [ 4, 7 ], [ 4, 8 ] ]