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

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

DDD
DDDオリジナル
2024-11-03 16:19:02763ブラウズ

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

JavaScript 配列値のすべての組み合わせ (デカルト積) を見つける

JavaScript で複数の配列から値のすべての組み合わせを生成するには、デカルト積の概念。そのアプローチ方法は次のとおりです。

デカルト積の再帰


すべての組み合わせを生成するには、以下を反復する再帰関数を使用できます。各配列を作成し、すべての要素を結合しますarrays.

複数の配列のデカルト積を見つける再帰関数の例を次に示します。



function allPossibleCases(arr) {<br> if (arr.length == 1) {</p>
<pre class="brush:php;toolbar:false">return arr[0];

} 他{

var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array
for (var i = 0; i < allCasesOfRest.length; i++) {
  for (var j = 0; j < arr[0].length; j++) {
    result.push(arr[0][j] + allCasesOfRest[i]);
  }
}
return result;

}
}



使用法例


3 つの配列があるとします:

var first = ['a', 'b'],<br>var Second = ['c'],<br>var third = ['d', 'e', 'f'];

allPossibleCases 関数を使用すると、次のようにすべての組み合わせを生成できます:


< ;div class="スニペット" data-lang="js" data-hide="false" data-console="true" data-babel="false">

var allArrays = [最初、二番目、 third];<br>console.log(allPossibleCases(allArrays));



これにより、次の組み合わせが出力されます:

acd
ace
acf
bcd
bce
bcf
azd
aze
azf
bzd
bze
bzf

注: の順序各組み合わせの要素は、allArrays 変数内の配列の順序によって異なる場合があります。

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

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

関連記事

続きを見る