二維陣列笛卡爾積js實現
var data = [
['A1','A2'],
['B1','B2','B3'],
['C1','C2'],
['D1','D2','D3'],
['E1','E2','E3'],
];
function descartes(arr) {
var result = [], point = [], count = 1;
for (var i = 0; i < arr.length; i++) {
point.push(arr[i].length);
count *= arr[i].length;
}
for (var i = 0; i < count; i++) {
var _zb = [], _tmp = i;
for (var j = point.length - 1; j > -1; j--) {
_zb[j] = _tmp % point[j];
_tmp = parseInt(_tmp / point[j]);
}
var _item = [];
for (var k = 0; k < _zb.length; k++) {
_item[k] = arr[k][_zb[k]];
}
result.push(_item);
}
return result;
}
console.log(descartes(data));
相關文章
- java 笛卡爾積(迴圈)Java
- 笛卡爾乘積的javascript版實現和應用JavaScript
- 笛卡爾積與全連線
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 笛卡爾積的應用——商品 SKU 計算
- Oracle的表連線方法(四)笛卡爾積Oracle
- javascript如何實現二維陣列效果JavaScript陣列
- 笛卡爾樹
- Python如何從列表中獲取笛卡爾積Python
- [JavaScript] 求解任意n個集合的笛卡爾積JavaScript
- 笛卡爾積和NEST LOOP產生的影響OOP
- c#簡單實現二維陣列和二維陣列列表List<>的轉置C#陣列
- 實現二維陣列的行列互換陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- js二維陣列新認識JS陣列
- javascript實現二維陣列實現簡單介紹JavaScript陣列
- 成績錄入SQL語句 笛卡爾積 LEFT JOINSQL
- Java實現普通二維陣列和稀疏陣列的相互轉換Java陣列
- 二維陣列陣列
- PHP二維陣列轉一維陣列PHP陣列
- 二叉查詢樹和笛卡爾樹
- 【TUNE_ORACLE】列出走了笛卡爾積的SQL參考OracleSQL
- 最長公共子串 二維陣列 Go實現陣列Go
- PHP中二維陣列與多維陣列PHP陣列
- JavaScript --二維陣列查詢一維陣列JavaScript陣列
- vector 二維陣列陣列
- Java二維陣列Java陣列
- JavaScript二維陣列JavaScript陣列
- JavaScript 二維陣列JavaScript陣列
- 二維陣列排序陣列排序
- php計算多個集合的笛卡爾積例項詳解PHP
- 二維陣列JSON.stringify 後,第二層陣列解析為空陣列JSON
- JavaScript二維陣列轉換成一維陣列JavaScript陣列
- C++容器巢狀實現動態二維陣列C++巢狀陣列
- Java 實現順時針螺旋二維陣列輸出Java陣列
- C++動態建立二維陣列,二維陣列指標,以及動態二維陣列函式傳遞C++陣列指標函式
- C/C++ 二維陣列的理解(多維陣列)C++陣列