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

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

Mary-Kate Olsen
リリース: 2024-12-15 14:10:22
オリジナル
142 人が閲覧しました

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())));
ログイン後にコピー

ソリューションの詳細:

このソリューションは 2 つの主要な JavaScript 機能を採用しています:

  1. Spread Operator ( ...): この演算子は、配列を個別の引数に分散し、それらを指定できるようにするために使用されます。
  2. Array.reduce(...): これは、配列を再帰的に結合するために使用され、各ステップで次の処理が実行されます。

    • flatMap() メソッドを使用して現在の結果配列を平坦化します。
    • 次の結果を反復します。 array.
    • 次の配列の各要素を平坦化された結果に追加します。
    • 結果を再度平坦化します。

例:

let 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 は進化し続けており、ECMAScript 2020 で導入された新機能により、より簡潔で効率的なコードを作成できるようになります。この改善されたソリューションは、複雑な問題に対する最新の JavaScript の威力を実証します。

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

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