<html>
<head>
</head>
<body>
颜色:<input name='c0' type='checkbox' value='黑' />黑<input name='c0' type='checkbox' value='白' />白<br />
尺寸:<input name='c1' type='checkbox' value='大' />大<input name='c1' type='checkbox' value='小' />小<br />
大小:....
  .
  .
  .
  .
一些属性不定的
</body>
</html>或
var arr={黑,白,绿}
var arr2={大,小}
要实现输出
黑大
黑小
白大
白小
绿大
绿小
不要告诉我用多重for循环 因为数组个数不定 貌似用递推 但小弟递推写的不好 
望高人大哥指点 谢谢

解决方案 »

  1.   

    数组的个数不确定?var a = [];
    a[0] = ['黑','白','绿'];
    a[1] = ['大','小'];
    ...
    a.length=可以固定了吧
      

  2.   

    长度能最后确定 但不能定死 有可能length=1 也有肯等于2  也肯能是n
      

  3.   

    两重for循环

    var a = [];
    a[0] = ['黑','白','绿'];
    a[1] = ['大','小'];
    a[2] = ['轻','重'];
    两重你能循环出
    黑大轻
    黑小轻
    黑大重
    黑小重
    ...
    .
    .
    .
    绿小重
    这样的吗我觉得该用 那个迭代递推什么的
      

  4.   

    期待低鬼,哈哈!MARK,关注!
      

  5.   

    数组个数不定有什么关系??? 这些数组又都是A数组的数组成员而已,A.length就是数组的个数,A[I][J]这样又可以取到每个小数组的数组成员,问题不就解决了吗?
    什么递归不递归的.不要把问题复杂化了.简单直接地解决是最好的方法.
      

  6.   

    如 #10 所说,用非递归确实可以是实现L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title> new document </title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="[email protected]" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
    </head>
    <body>
    <script type="text/javascript">
    <!--
    var a = [];
    a[0] = ['黑','白','绿'];
    a[1] = ['大','小'];
    a[2] = ['轻','重'];var result = new Array();
    var sample;
    for (var i=0; i<a.length; i++)
    {
        sample = result.slice(0);
        for (var j=0; j<a[i].length; j++)
        {
            if (sample.length == 0)
            {
                result.push(a[i][j]);
            }
            else
            {
                if (j > 0)
                {
                    for (var k=0; k<sample.length; k++)
                    {
                        result.push(sample[k] + a[i][j]);
                    }
                }
                else
                {
                    for (var k=0; k<result.length; k++)
                    {
                        result[k] += a[i][j];
                    }
                }
            }
        }
    }Show(result.join("<br />"));function Show(value) {
        document.write(value + "<br />");
    }/*Output黑大轻
    白大轻
    绿大轻
    黑小轻
    白小轻
    绿小轻
    黑大重
    白大重
    绿大重
    黑小重
    白小重
    绿小重*/
    //-->
    </script>
    </body>
    </html>
      

  7.   

    优化了非递归实现!L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title> new document </title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="[email protected]" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
    </head>
    <body>
    <script type="text/javascript">
    <!--
    var a = [];
    a[0] = ['黑','白','绿'];
    a[1] = ['大','小'];
    a[2] = ['轻','重'];var result = new Array();
    var sample;
    for (var i=0; i<a.length; i++)
    {
        sample = result.slice(0);    if (sample.length == 0)
        {
            result = result.concat(a[i]);
        }
        else
        {
            result.splice(0, result.length);        for (var j=0; j<a[i].length; j++)
            {
                for (var k=0; k<sample.length; k++)
                    result.push(sample[k] + a[i][j]);
            }
        }
    }Show(result.join("<br />"));function Show(value) {
        document.write(value + "<br />");
    }/*Output黑大轻
    白大轻
    绿大轻
    黑小轻
    白小轻
    绿小轻
    黑大重
    白大重
    绿大重
    黑小重
    白小重
    绿小重*/
    //-->
    </script>
    </body>
    </html>
      

  8.   


    <script type="text/javascript">
    var a = [];
    a[0] = ['黑','白','绿'];
    a[1] = ['大','小'];
    a[2] = ['轻','重'];
    a[3] = ['长','短'];
    a[4] = ['胖','瘦'];
    var i,l,k,j=a.length,comb = a[0],cl=comb.length,r=[];
    for(i=1;i<j;i++)
    {
        k = a[i].length;
        for(var s=0;s<cl;s++) 
        {
            for(l=0;l<k;l++ )
            {
                r[r.length] = (comb[s] || '') + a[i][l];
            }
        }
        comb = r;
        cl = comb.length;
        r = [];
    }
    alert(comb);
    </script>
      

  9.   

    再次优化L@_@K
    var a = [];
    a[0] = ['黑','白','绿'];
    a[1] = ['大','小'];
    a[2] = ['轻','重'];
    a[3] = ['高','矮'];
    a[4] = ['胖','瘦'];var resultArray = a[0];
    var copyArray;
    for (var i = 1; i < a.length; i++)
    {
        copyArray = resultArray.splice(0, resultArray.length);
        for (var k = 0; k < copyArray.length; k++)
            for (var j = 0; j < a[i].length; j++)
                resultArray.push(copyArray[k] + a[i][j]);
    }document.write(resultArray.join("<br />"));