Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menjana Semua Kemungkinan Gabungan Nilai dalam Tatasusunan JavaScript?

Bagaimana untuk Menjana Semua Kemungkinan Gabungan Nilai dalam Tatasusunan JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 17:34:30303semak imbas

How to Generate All Possible Combinations of Values in JavaScript Arrays?

Mencari Gabungan Nilai Tatasusunan JavaScript

Cabaran yang sering dihadapi dalam JavaScript ialah mencari semua kemungkinan gabungan nilai merentas berbilang tatasusunan dengan panjang yang berbeza-beza. Ini berbeza daripada pilih atur, di mana susunan unsur penting.

Untuk menyelesaikan masalah ini, kami menggunakan pendekatan rekursif:

<code class="javascript">function allPossibleCases(arr) {
  if (arr.length === 1) {
    return arr[0];
  } else {
    var result = [];
    var allCasesOfRest = allPossibleCases(arr.slice(1));  // recur with the rest of array
    for (var c in allCasesOfRest) {
      for (var i = 0; i < arr[0].length; i++) {
        result.push(arr[0][i] + allCasesOfRest[c]);
      }
    }
    return result;
  }
}</code>

Pertimbangkan contoh dengan tiga tatasusunan:

<code class="javascript">var allArrays = [['a', 'b'], ['c'], ['d', 'e', 'f']];</code>

Memanggil allPossibleCases(allArrays) akan mengeluarkan:

["acd", "bcd", "azd", "bzd", "ace", "bce", "aze", "bze", "acf", "bcf", "azf", "bzf"]

Kaedah ini menggabungkan semua elemen daripada tatasusunan input dengan berkesan untuk menjana semua kombinasi yang mungkin, memenuhi keperluan yang dikemukakan dalam pertanyaan asal.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Semua Kemungkinan Gabungan Nilai dalam Tatasusunan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn