在调用下面的remove 方法的时候,传了个【[object] , [object],[object]】,执行了以后,数组变成了【undefined,[object],[object]】.求解!!!
function remove(array,index)
{
alert("remove been called!");
alert("index:"+index+" , array.length:"+array.length);
for(;index<array.length;index++)
{
var error_msg="";
for(var a=0;a<methodArray.length;a++)
{
error_msg+=methodArray[a]+"\n";
}
alert(error_msg);
if(index!=array.length-1)
{
alert("remove the attribute in array");
array[index]=array[index+1];
}
else
{
alert("reduce the length");
array.length=array.length-1;
}

}
alert("The length after remove is : "+array.length);
}

解决方案 »

  1.   

    看不懂,methodArray哪里来的也不知道
      

  2.   

    楼主的代码很短,但是让人一看很眼疼。
    js数组增加或删除元素用splice方法。
      

  3.   

    错别字。methodArray 就是传过来的参数array 
      

  4.   

    不是传过来之后值变了。是在运行了这个方法之后,值变了。从【[object],[object],[object]】变成了【undefined,[object]】
      

  5.   

    你还是把返回的数组重新定义一下吧,这样直接改变array.length的值不知道是什么机制来改变的