首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 實現多組數據笛卡爾積組合算法

     編輯:程式設計綜合問答

問題

給定二維陣列 data = [["A","B","C"],["D","E"],[1,2]],需取出每個子陣列的一個元素組合,共 3×2×2=12 種結果。

解法:遞歸/迭代產生笛卡爾積

function cartesianProduct(arr) {
  return arr.reduce((acc, curr) => 
    acc.flatMap(x => curr.map(y => [...x, y])), [[]]);
}
// 使用
const result = cartesianProduct(data);

參考 StackOverflow 經典實現:Cartesian product of objects in JavaScript

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved