/**
* 二維陣列的笛卡爾積
* @param specs 二維陣列,需要做笛卡爾積運算的陣列
* @returns
*/function
multicartesian
(specs)
else
// prevproducts 和 specs 兩個陣列做笛卡爾積
// i 是索引,表示原始陣列遍歷的位數
// max 是原始陣列最大的長度
function
joinspec
(prevproducts, specs, i, max)
// 前面的陣列 和 緊跟著後面的陣列 做笛卡爾積
prevproducts.
foreach
(function
(prevproduct));
});// 遞迴處理,前面笛卡爾積之後的結果作為前面的陣列,然後迴圈往前推進1位
return
joinspec
(currentproducts, specs,
++i, max);}
}var originarray =[[
111,
222,
333],[
'aaa'
,'bbb'
,'ccc'],
['*****'
,'++++++']]
; console.
dir(
multicartesian
(originarray)
)
[
[111
,"aaa"
,"*****"],
[111
,"aaa"
,"++++++"],
[111
,"bbb"
,"*****"],
[111
,"bbb"
,"++++++"],
[111
,"ccc"
,"*****"],
[111
,"ccc"
,"++++++"],
[222
,"aaa"
,"*****"],
[222
,"aaa"
,"++++++"],
[222
,"bbb"
,"*****"],
[222
,"bbb"
,"++++++"],
[222
,"ccc"
,"*****"],
[222
,"ccc"
,"++++++"],
[333
,"aaa"
,"*****"],
[333
,"aaa"
,"++++++"],
[333
,"bbb"
,"*****"],
[333
,"bbb"
,"++++++"],
[333
,"ccc"
,"*****"],
[333
,"ccc"
,"++++++"
]]
避免笛卡爾積
在mysql中建立臨時表 create table temptable 2 instanceid numeric 30 celltype varchar 128 enodeb id numeric 30 eutrancell id numeric 30 engine myisam default c...
js笛卡爾積
可以用來模擬路徑,或者標籤的順序。笛卡兒積組合 function descartes list var result var pindex null var tempcount 0 var temp 根據引數列生成指標物件 for var index in list pindex index 單維度...
笛卡爾積 LintCode
我們採用二維陣列setlist表示集合陣列,其中setlist i 中的每個元素都為整數,且不相同。求集合setlist 0 setlist 1 setlist setlist.length 1 的笛卡爾積。一般地,集合a和集合b的笛卡爾積a b 注意事項 1 setlist.length 5 1 ...