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

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

Patricia Arquette
リリース: 2024-12-16 07:13:10
オリジナル
675 人が閲覧しました

How Can I Efficiently Generate Cartesian Products of Arrays in JavaScript?

JavaScript で配列のデカルト積を生成する

複数の配列のデカルト積を計算することは、プログラミングにおける一般的なタスクです。これには、各配列の要素を組み合わせて、考えられるすべての組み合わせを含む新しい配列を作成することが含まれます。 JavaScript でこれを実現するには、さまざまなアプローチを採用できます。

単純だが時代遅れのアプローチの 1 つは、各配列を反復処理し、可能なすべての組み合わせを手動で生成する必要があります。ただし、この方法は大規模なデータセットでは非効率的になります。代わりに、ES6 と ES2019 の高度なテクニックを活用してプロセスを大幅に簡素化できます。

最適化された 2020 ソリューション

ES2019 での flatMap の導入により、デカルト積の計算を 1 回に減らすことができます。簡潔なコード行:

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

例使用法

説明のために、質問で提供された例を考えてみましょう:

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 機能を採用することで、デカルト積の計算などの複雑なタスクに驚くほど簡単に取り組むことができます。アルゴリズム開発であれ、データ操作であれ、これらの技術により、開発者はより効率的かつエレガントにコーディングできるようになります。

以上がJavaScript で配列のデカルト積を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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