ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で複数の配列のデカルト積を効率的に計算するにはどうすればよいですか?

JavaScript で複数の配列のデカルト積を効率的に計算するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-31 05:55:18
オリジナル
953 人が閲覧しました

How to Efficiently Calculate the Cartesian Product of Multiple Arrays in JavaScript?

JavaScript での複数の配列のデカルト積の実装

複数の配列のデカルト積は、入力配列の要素の可能なすべての組み合わせで構成されます。この操作は、一連のデータから可能なすべての組み合わせまたは順列を生成するために不可欠です。

1 行の答え (ES2020)

const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
ログイン後にコピー

説明

デカルト積は次のように計算されます方法:

  1. Reduce: このメソッドを使用して、各配列を反復処理し、それらを結合します。
  2. flatMap: 次の方法で縮小された配列を平坦化します。 2 つの入力からの要素の可能なすべての組み合わせを組み合わせるarrays.
  3. flat: 空の配列または要素を削除して、ネストされた配列を簡素化します。

To値を含む配列にデカルト積を適用するには、次のことを考慮してください。例:

const output = cartesian([1, 2], [10, 20], [100, 200, 300]);
ログイン後にコピー

期待される出力は次のとおりです:

[
  [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 で複数の配列のデカルト積を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート