在 JavaScript 中计算数组中元素的笛卡尔积
笛卡尔积
两组(数组)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 ] ]
广告
数据结构
网络
关系型数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言
C++
C#
MongoDB
MySQL
Javascript
PHP