ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 配列の値のすべての組み合わせ (デカルト積) を生成するにはどうすればよいですか?

JavaScript 配列の値のすべての組み合わせ (デカルト積) を生成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-03 21:05:29340ブラウズ

How to Generate All Combinations (Cartesian Product) of Values in JavaScript Arrays?

JavaScript 配列値のデカルト積

問題:

任意の数の JavaScript が与えられた場合さまざまな長さの配列を使用して、その値のすべての組み合わせ (デカルト積) を決定します。

解決策:

このタスクは再帰を使用して効率的に解決できます。これには、各配列を反復処理し、その値を残りの配列の可能なすべての組み合わせと組み合わせることが含まれます。

次の実装を考えてみましょう:

function allPossibleCases(arr) {
  if (arr.length === 1) {
    return arr[0];
  } else {
    const result = [];
    const casesOfRest = allPossibleCases(arr.slice(1));  // recur with the rest of arr
    casesOfRest.forEach((c) => {
      for (let i = 0; i < arr[0].length; i++) {
        result.push(arr[0][i] + c);
      }
    });
    return result;
  }
}

使用法:

var allArrays = [['a', 'b'], ['c'], ['d', 'e', 'f']];
var results = allPossibleCases(allArrays); // outputs ["acd", "bcd", "azd", ...]

説明:

  • allPossibleCases 関数は、配列の配列を入力として受け取ります。
  • 入力配列にサブ配列が 1 つだけある場合
  • それ以外の場合は、残りのサブ配列で自分自身を再帰的に呼び出し、各サブ配列の値を残りのサブ配列のすべての可能な組み合わせと組み合わせます。
  • 関数各サブ配列を反復処理し、その値を残りの配列のすべての組み合わせと連結して、考えられるすべての組み合わせを生成します。
  • 最終結果は、入力配列からの値の一意の組み合わせをすべて含む文字列の配列です。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。