Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

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

Tích Descartes (Cartesian Product)

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

Nói đơn giản: hoán vị tất cả mảng 2 phần tử, phần tử đầu từ mảng 1, phần tử hai từ mảng 2.

Ví dụ:

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

Tích Descartes:

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

Ví dụ

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

Kết quả

Kết quả in ra console:

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