複数の配列のデカルト積を計算することは、プログラミングにおける一般的なタスクです。これには、各配列の要素を組み合わせて、考えられるすべての組み合わせを含む新しい配列を作成することが含まれます。 JavaScript でこれを実現するには、さまざまなアプローチを採用できます。
単純だが時代遅れのアプローチの 1 つは、各配列を反復処理し、可能なすべての組み合わせを手動で生成する必要があります。ただし、この方法は大規模なデータセットでは非効率的になります。代わりに、ES6 と ES2019 の高度なテクニックを活用してプロセスを大幅に簡素化できます。
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 サイトの他の関連記事を参照してください。