javascript - 4个一维数组的元素能组成多少个一维数组
phpcn_u1582
phpcn_u1582 2017-05-16 13:04:38
0
5
629

例如,

[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]

怎么把所有可能的组合都列出来 ?

phpcn_u1582
phpcn_u1582

全部回复(5)
阿神

雷雷

phpcn_u1582

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]);
            }
        }
    }
}
为情所困

雷雷

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板