首頁 > web前端 > js教程 > 如何在 JavaScript 中有效率地計算多個陣列的笛卡爾積?

如何在 JavaScript 中有效率地計算多個陣列的笛卡爾積?

Mary-Kate Olsen
發布: 2024-12-31 05:55:18
原創
1003 人瀏覽過

How to Efficiently Calculate the Cartesian Product of Multiple Arrays in JavaScript?

在JavaScript 中實現多個數組的笛卡爾積

多個數組的笛卡爾積包含輸入數組中元素的每種可能的組合。此操作對於從一組資料產生所有可能的組合或排列至關重要。

1 行答案(ES2020)

const cartesian = (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
登入後複製

解釋

笛卡爾積的計算公式如下方式:

  1. 笛卡爾積的計算公式如下:笛卡爾積的運算公式
  2. :使用此方法迭代每個陣列並將它們組合起來。
  3. flatMap
  4. :將縮減後的陣列展平組合來自兩個輸入的所有可能的元素組合陣列。
  5. 扁平
  6. :透過刪除空數組或元素來簡化巢狀數組。

範例

到將笛卡爾積應用於具有數值的數組,請考慮以下內容範例:
const 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 中有效率地計算多個陣列的笛卡爾積?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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