Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การคำนวณ Cartesian Product ขององค์ประกอบในอาร์เรย์ด้วย JavaScript

Cartesian Product (ผลคูณการ์ทีเซียน)

Cartesian Product ของเซต (อาร์เรย์) สองเซต A และ B สัญลักษณ์ A × B คือเซต (อาร์เรย์) ของคู่ลำดับ (a, b) ทั้งหมด โดยที่ a อยู่ใน A และ b อยู่ใน B

อย่างง่ายๆ Cartesian Product ของสองอาร์เรย์คือการเรียงสับเปลี่ยน (permutation) ของอาร์เรย์ที่เป็นไปได้ทั้งหมดที่มีสององค์ประกอบ โดยองค์ประกอบแรกมาจากอาร์เรย์แรก และองค์ประกอบที่สองมาจากอาร์เรย์ที่สอง

ตัวอย่าง: ถ้าสองอาร์เรย์คือ:

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

Cartesian Product ของพวกเขาจะเป็น:

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