Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 배열 요소의 데카르트 곱 계산

<시간/>

데카르트 곱

A × B로 표시된 두 집합(배열) A와 B의 데카르트 곱은 a가 A에 있고 b가 B에 있는 모든 순서쌍(a, 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 ] ]