JavaScript 笛卡爾積運算

2021-09-07 03:09:13 字數 1643 閱讀 2462

/**

* 二維陣列的笛卡爾積

* @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 ...