妥了,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> Array_push </title>
  <meta name="generator" content="editplus" />
  <meta name="author" content="[email protected]" />
  <meta name="keywords" content="javascript" />
  <meta name="description" content="for javascript region of csdn" />
 </head> <body>
<script type="text/javascript">
<!--function explode(givenString, separator, arrResult)
{
    var temp = givenString.split(separator);
    for (var i=0; i<temp.length; i++)
    {
        arrResult.push(temp[i]);
    }
}var strA="a@g^a@b@g^h@g";
var fd1=new Array();
var fd2=new Array();
var fd3=new Array();
var counter=0;explode(strA, "^", fd1);
alert(fd1);//explode的作用是:以^為分割符,產生數組fd1,fd1=(a@g,a@b@g,h@g)
for(var n=0; n<fd1.length; n++)
{
explode(fd1[n],"@",fd2);
}alert(fd2);//-->
</script>
 </body>
</html>

解决方案 »

  1.   

    這樣不行吧
    如果用alert(fd2.length),會發現長度為7
    但是我希望是下面的情況
    var a1=new Array(1,2,3);
    var a2=new Array(3,5,6);
    var a3=new Array(2,3,4);
    newa=new Array(a1,a2,a3)
    alert(newa.length);
    長度為3
      

  2.   

    疯, 你有够笨, 不是说 apply 嘛...<script type="text/javascript">
    /*<![CDATA[*/
    var a1=new Array(1,2,3);
    var a2=new Array(3,5,6);
    var a3=new Array(2,3,4);
    var newa=new Array(a1,a2,a3) fTest.apply(null, newa);
     
     function fTest()
     {
      alert(arguments.length) 
     }
    /*]]*/
    </script>
      

  3.   

    可能是我表述不清
    我現在不能直接這樣賦值:
    var a1=new Array(1,2,3);
    var a2=new Array(3,5,6);
    var a3=new Array(2,3,4);
    var newa=new Array(a1,a2,a3)因為我要實現的是:
    var strA="a@g^a@b@g^h@g"
    var fd1=new Array();
    var fd2=new Array();
    var fd3=new Array();
    var counter=0;
    explode(strA,"^",fd1);
    //explode的作用是:以^為分割符,產生數組fd1,fd1=(a@g,a@b@g,h@g)
    for(n=0;n<fd1.length;n++){
    explode(fd1[n],"@",fd2); 
    }
    fd2是動態產生的,我就希望能像var newa=new Array(a1,a2,a3)一樣,把所有的fd2放到一個新的Array()裡面去
      

  4.   

    你的确描述不清楚。。
    fd1 = strA.split("^");
    下面的意思没看懂反正分割这么弄就行。
      

  5.   

    呵,你的意思我们明白了。。:D
    还是用btbtd兄的CODE<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>shawl.qiu template</title>
    <style type="text/css">
    /* <![CDATA[ *//* ]]> */
    </style>
    <script type="text/javascript">
    /*<![CDATA[*/
    if (navigator.appName == "Microsoft Internet Explorer") {
      //最大化窗口
    self.moveTo(-5, -5);
    self.resizeTo(screen.availWidth + 8, screen.availHeight + 8);
    //这个脚本定义的宽度其实比原窗口还要大那么一点.
    }
    /*]]*/
    </script>
    </head>
    <body>
    <script type="text/javascript">
    /*<![CDATA[*/
    var strA = "a@g^a@b@g^h@g";
    ////alert();
    String.prototype.__nsplit = function ($1, $2) {
    for (var i = 0, a = this.split($1) ; i < a.length ; i ++) a[i] = a[i].split($2);
    return a;
    };var fGetTheSame = function () {// shawl.qiu code : return Array
    var arg = arguments, len = i = arg.length, a = [];
    if (len < 1) throw new Error("参数错误, 必须最少为一个数组!");
    else while (-- i > -1) if (arg[i].constructor != Array) throw new Error("参数必须为数组!");
    (',' + Array.apply(null, arg).join(",").split(",").sort().join(",")).replace(new RegExp("(,([^,]+))\\1{" + (len - 1) + "}", "g"), function ($a, $b, $c) {
    return a[a.length] = $c;
    });
    return a;
    } // end function fGetTheSame()alert(fGetTheSame.apply(null, strA.__nsplit("^", "@")));
    /*]]*/
    </script>
    </body>
    </html>
      

  6.   

    逻辑能力欠佳....JS 就这两种方法可以作动态参数,,,<script type="text/javascript">
    /*<![CDATA[*/
    var a1=new Array(1,2,3);
    var a2=new Array(3,5,6);
    var a3=new Array(2,3,4);
    var newa=new Array(a1,a2,a3) fTest.apply(null, newa);
     fTest.call(null, a1, a2, a3);
     
     function fTest()
     {
      alert(arguments.length) 
     }
    /*]]*/
    </script>你自己变通个法子吧...