二維陣列笛卡爾積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));
相關文章
- 笛卡爾乘積的javascript版實現和應用JavaScript
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- 笛卡爾樹
- 笛卡爾積的應用——商品 SKU 計算
- Python如何從列表中獲取笛卡爾積Python
- js二維陣列新認識JS陣列
- 實現二維陣列的行列互換陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 二叉查詢樹和笛卡爾樹
- 【TUNE_ORACLE】列出走了笛卡爾積的SQL參考OracleSQL
- Java實現普通二維陣列和稀疏陣列的相互轉換Java陣列
- 二維陣列陣列
- 最長公共子串 二維陣列 Go實現陣列Go
- PHP中二維陣列與多維陣列PHP陣列
- JS實現陣列去重JS陣列
- 二維陣列排序陣列排序
- Java二維陣列Java陣列
- vector 二維陣列陣列
- 基環樹和笛卡爾樹
- C++容器巢狀實現動態二維陣列C++巢狀陣列
- 二維陣列和稀疏陣列互轉陣列
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- 理解笛卡爾積在資料庫查詢中的實際應用與最佳化資料庫
- JS陣列去重的實現JS陣列
- C#二維陣列在SLG中的實現和使用C#陣列
- php 二維陣列排序PHP陣列排序
- 二維陣列查詢陣列
- 二維樹狀陣列陣列
- 二維陣列行排序陣列排序
- 二維陣列練習陣列
- Java 二維陣列轉一維Java陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- SparkSQL中產生笛卡爾積的幾種典型場景以及處理策略SparkSQL
- js實現資料結構--陣列JS資料結構陣列
- 【笛卡爾樹+DP】【SP3734】 PERIODNI - Periodni
- 笛卡爾座標張量簡介7
- 笛卡爾實驗室全面遷移至亞馬遜雲科技亞馬遜