例如,
[1,2,3,4], [5], [7,8], [9]
產生一維數組, 應該是 8 種 .
其實類似枝狀 ~
[1,5,7,9], [2,5,7,9], [1,5,7,9], /*** ** 省略 ... ***/ [4,5,8,9]
假如是多一個元素呢 ?
[1,2,3,4], [5,6], [7,8], [9]
怎麼把所有可能的組合都列出來 ?
雷雷
4*2*2, 16種. 排列組合,由於每個數組中必須要有一個元素,那麼對於數組1:c(4,1)=4, 數組2:c(2,1) =2, 數組3:c(2,1)=2, 數組4:c(1,1)=1,再每個相乘,注意重複元素.
一般來說有幾組就需要幾個循環,把裡面的元素挨個組合一次就行了,這是js的常規解法,有沒有更好的就不清楚了。
var a = [1,2,3,4], b = [5,6], c = [7,8], d = [9]; for(var i = 0; i < a.length; i++) { for(var j = 0; j < b.length; j++) { for(var k = 0; k < c.length; k++) { for(var l = 0; l < d.length; l++) { console.log(a[i] + '-' + b[j] + '-' + c[k] + '-' + d[l]); } } } }
雷雷
4*2*2, 16種.
排列組合,由於每個數組中必須要有一個元素,那麼對於
數組1:c(4,1)=4,
數組2:c(2,1) =2,
數組3:c(2,1)=2,
數組4:c(1,1)=1,
再每個相乘,注意重複元素.
雷雷
一般來說有幾組就需要幾個循環,把裡面的元素挨個組合一次就行了,這是js的常規解法,有沒有更好的就不清楚了。
雷雷