Computer >> Máy Tính >  >> Lập trình >> Javascript

Tính toán tích cacte của các phần tử trong một mảng trong JavaScript

Sản phẩm Descartes

Tích Descartes của hai tập hợp (mảng) A và B, được ký hiệu là A × B, là tập hợp (mảng) của tất cả các cặp có thứ tự (a, b) trong đó a thuộc A và b thuộc B.

Nói một cách đơn giản hơn, tích các-ten của hai mảng là một hoán vị của tất cả các mảng có thể có của hai phần tử mà phần tử đầu tiên thuộc mảng thứ nhất và phần tử thứ hai thuộc mảng thứ hai.

Ví dụ - Nếu hai mảng là -

const arr1 = [1, 2, 3];
const arr2 = [4, 5];

Sau đó, sản phẩm của họ sẽ là -

const product = [[1, 4], [1, 5], [2, 4], [2, 5], [3, 4], [3, 5]];

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[ [ 1, 4 ], [ 1, 5 ], [ 2, 4 ], [ 2, 5 ], [ 3, 4 ], [ 3, 5 ] ]