給定二維陣列 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