目的:通过输入参数来实例化一个数组,参数不定。使用如下的方法(就不说for方法了): function arr()
    {
       return   Array.apply([],arguments);
    }问题:这个方法貌似比较完美,却有个小小的BUG。假设我要得到的结果为12,得到的结果为一个长为12的数组,
          如果我要得到 [3,4] 的数组,得到正确结果。不知道其中的详解,还另指教var test = arr(12);
alert(test );var test = arr(3,4);
alert(test );

解决方案 »

  1.   

    不明白你说什么,就你提供的来看,arr只是一个返回你的参数的数组
    而不是像你说的长为12的数组
      

  2.   

    一般来将数组初始化下面这样就可以.
    var arr = [1,2,3,4];
      

  3.   


    你的方法有问题,应该这样:function arr()
        {
           return   Array.prototype.slice.apply(arguments);
        }
      

  4.   

    就是想通过arr方法初始化数组,如:arr(1,2,3,4)得到 数组 [1,2,3,4] ,arr(1)得到数组[1]
      

  5.   

    <script>
    function arr()
        {
    if(typeof arguments == "undefined"){
    return;
    }
            var temp = [];
    for(var i=0;i<arguments.length;i++){
    temp.push(arguments[i]);
    }
            return   temp;
        }
    var test1 = arr(12);
    alert(test1);var test2 = arr(3,4);
    alert(test2);</script>