在 JavaScript 中计算数组中元素的笛卡尔积
javascriptweb developmentfront end technologyobject oriented programming
笛卡尔积
两个集合(数组)A 和 B 的笛卡尔积,表示为 A × B,是所有有序对 (a, b) 的集合(数组),其中 a 在 A 中,b 在 B 中。
简单来说,两个数组的笛卡尔积是所有可能的两个元素数组的排列,其中第一个元素属于第一个数组,第二个元素属于第二个数组。
例如 − 如果两个数组是 −
const arr1 = [1, 2, 3]; const arr2 = [4, 5];
那么它们的笛卡尔积将是 −
const product = [[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]];
示例
其代码为 −
const arr1 = [1, 2, 3]; const arr2 = [4, 5]; const cartesianProduct = (arr1, arr2) => { const res = []; for(let i = 0; i < arr1.length; i++){ for(let j = 0; j < arr2.length; j++){ res.push( [arr1[i]].concat(arr2[j]) ); }; }; return res; }; console.log(cartesianProduct(arr1, arr2));
输出
控制台中的输出将是 −
[ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]