首頁 > web前端 > js教程 > 如何產生 JavaScript 陣列中值的所有組合(笛卡爾積)?

如何產生 JavaScript 陣列中值的所有組合(笛卡爾積)?

Linda Hamilton
發布: 2024-11-03 21:05:29
原創
398 人瀏覽過

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 函數以陣列的陣列為輸入。
如果輸入數組只有一個子數組,則會傳回其值。 否則,它用剩餘的子數組遞歸調用自身,並將每個子數組值與剩餘子數組的所有可能組合。 函數迭代每個子數組並將其值與剩餘數組中的每個組合連接起來,產生所有可能的組合。 最終結果是一個字串數組,其中包含輸入數組中值的所有唯一組合。

以上是如何產生 JavaScript 陣列中值的所有組合(笛卡爾積)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板