在 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 ] ]

更新於: 2020-11-21

966 次檢視

開啟你的職業

透過完成課程獲得認證

開始使用
廣告
© . All rights reserved.