比如有n个数组,数组的数量是不固定的,这个是前提。具体的效果,我举个例子:
假设有三个数组:
var aa=[1,2];
var bb = [7];
var cc = [4,8];
要获取的数据是这样的:
[1, 7, 4]
[1, 7, 8]
[2, 7, 4]
[2, 7, 8]
就是获取数据库的笛卡尔积形式的数据.

解决方案 »

  1.   

    var result=new Array();
    for(var i=0;i<aa.length;i++)
    {
      for(var j=0;j<bb.length;j++)
      {
        for(var k=0;k<cc.length;k++)
        {
          var aresult=[aa[i],bb[j],cc[k]];
          result.push(aresult);
        }
      }
    }
    这样不就行了,很简单的啊
      

  2.   

    <script>
    var aa=[1,2];
    var bb = [7];
    var cc = [4,8];
    var dd = [1,2,3];
    var all=[aa,bb,cc,dd]; //有多少数组都集起来
    var i=all.length;function arrl(arr,k,str){
    if(k>=i){
    return false;
    }else{
    var a=arr[k];
    if(k==i-1){
    for(var l=0;l<a.length;l++){
    document.write (str+a[l]+"]");
    }
    }else{
    for(var l=0;l<a.length;l++){
    if(k==0){str="["};
    str+=a[l]+",";
    var b=k+1;
    arrl(arr,b,str);
    }
    }
    }
    }
    arrl(all,0,"");
    </script>
      

  3.   

    呃 没注意数组数量不定:
    可以使用递归
    var aa=[1,2,3],bb=[1,2,3],cc=[1,2,3],dd=[1,2,3];
    var zz=[aa,bb,cc,dd];//此处数组个数任意var result=new Array();//结果保存到这个数组
    function toResult(arrIndex,aresult)
    {
      if(arrIndex>=zz.length) {result.push(aresult);return;};
      var aArr=zz[arrIndex];
      if(!aresult) aresult=new Array();
      for(var i=0;i<aArr.length;i++)
      {
        var theResult=aresult.slice(0,aresult.length);
        theResult.push(aArr[i]);
        toResult(arrIndex+1,theResult);
      }
    }
    toResult(0);//函数执行后result数组就是所需结果
      

  4.   

    .........
    toResult(0);//函数执行后result数组就是所需结果
    alert(result); //结果是:,1,1,1,1,1,1,2,1,1,1,3,1,1,2,1,1,1,2,2,1,1,2,3,1,1,3,1,1,1,3,2,1,1,3,3,1,2,1,1,1,2,1,2,1,2,1,3,1,2,2,1,1,2,2,2,1,2,2,3,1,2,3,1,1,2,3,2,1,2,3,3,1,3,1,1,1,3,1,2,1,3,1,3,1,3,2,1,1,3,2,2,1,3,2,3,1,3,3,1,1,3,3,2,1,3,3,3,2,1,1,1,2,1,1,2,2,1,1,3,2,1,2,1,2,1,2,2,2,1,2,3,2,1,3,1,2,1,3,2,2,1,3,3,2,2,1,1,2,2,1,2,2,2,1,3,2,2,2,1,2,2,2,2,2,2,2,3,2,2,3,1,2,2,3,2,2,2,3,3,2,3,1,1,2,3,1,2,2,3,1,3,2,3,2,1,2,3,2,2,2,3,2,3,2,3,3,1,2,3,3,2,2,3,3,3,3,1,1,1,3,1,1,2,3,1,1,3,3,1,2,1,3,1,2,2,3,1,2,3,3,1,3,1,3,1,3,2,3,1,3,3,3,2,1,1,3,2,1,2,3,2,1,3,3,2,2,1,3,2,2,2,3,2,2,3,3,2,3,1,3,2,3,2,3,2,3,3,3,3,1,1,3,3,1,2,3,3,1,3,3,3,2,1,3,3,2,2,3,3,2,3,3,3,3,1,3,3,3,2,3,3,3,3
      

  5.   

    请不要乱说好么,不会看代码,只会alert?
    结果是[[1,1,1,1],[1,1,1,2],[1,1,1,3],......],总共81个。
    alert时会调用对象的toString方法再输出,而数组的toString方法就是在成员间用逗号分隔连接为字符串,所以alert就是这个结果。但实际的情况是一个二维数组。
    亏你还有星星,这都不知道么?
      

  6.   

    就算js不是你的方向,不知道数组alert弹出的东西,但略微看看代码也应该明白的,请不要看都不看就乱说好么?