> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 여러 배열의 데카르트 곱을 어떻게 계산할 수 있나요?

JavaScript에서 여러 배열의 데카르트 곱을 어떻게 계산할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-12-15 14:10:22
원래의
149명이 탐색했습니다.

How Can I Calculate the Cartesian Product of Multiple Arrays in JavaScript?

JavaScript의 여러 배열의 데카르트 곱

JavaScript는 여러 배열의 데카르트 곱을 결정하는 간단한 방법을 제공합니다. 데카르트 곱은 각 배열의 요소를 결합하여 새로운 배열을 형성하여 가능한 모든 조합을 생성하는 작업을 포함합니다.

예를 들어, 배열 [1, 2] 및 [10, 20]이 주어지면 데카르트 곱은 다음과 같습니다. [[1, 10], [1, 20], [2, 10], [2, 20]].

현대적인 1라인 솔루션 JavaScript(ECMAScript 2020):

const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
로그인 후 복사

솔루션 심층 분석:

이 솔루션은 두 가지 주요 JavaScript 기능을 사용합니다.

  1. Spread 연산자( ...): 이 연산자는 배열을 별도의 인수로 분산하여 함수에 제공할 수 있도록 하는 데 사용됩니다.
  2. Array.reduce(...): 각 단계에서 다음을 수행하여 배열을 재귀적으로 결합하는 데 사용됩니다.

    • flatMap() 메서드를 사용하여 현재 결과 배열을 평면화합니다.
    • 다음 결과를 반복합니다. 배열.
    • 다음 배열의 각 요소를 평면화된 결과에 추가합니다.
    • 결과를 다시 평면화합니다.

예:

let output = cartesian([1, 2], [10, 20], [100, 200, 300]);
로그인 후 복사

이렇게 하면 producer:

[[1, 10, 100],
 [1, 10, 200],
 [1, 10, 300],
 [1, 20, 100],
 [1, 20, 200],
 [1, 20, 300],
 [2, 10, 100],
 [2, 10, 200],
 [2, 10, 300],
 [2, 20, 100],
 [2, 20, 200],
 [2, 20, 300]]
로그인 후 복사

JavaScript는 계속 발전하고 있으며 ECMAScript 2020에 도입된 새로운 기능을 통해 더욱 간결하고 효율적인 코드를 작성할 수 있습니다. 이 개선된 솔루션은 복잡한 문제에 대한 최신 JavaScript의 힘을 보여줍니다.

위 내용은 JavaScript에서 여러 배열의 데카르트 곱을 어떻게 계산할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿