function deleteElement(array,delind) {
size = array.length;
delindex = delind; for (var i=0; i<=size; i++)
array[i] = ((i == delindex) ? "delete" : array[i]);
for (var j=delindex; j<size-1; j++)
array[j]=array[j+1];
array.length = size-1;
}这个就是删除数组元素的函数
设我目前要对二维数组arrTest[0]=["1","2","3","4","5"]
                    arrTest[1]=["a","b","c","d","e"]
                    arrTest[2]=["f1","f2","f3","f4","f5"]
                    arrTest[3]=["max","min","ave","sum","mod"]
作删除操作,删除元素arrTest[1]
使用上面的deleteElement()函数后,得到arrTest数组为:
                    arrTest[0]=["1","2","3","4","5"]
                    arrTest[1]=undefined
                    arrTest[2]=["max","min","ave","sum","mod"]
很奇怪,理论上新的arrTest数组中,arrTest[1]应该是["f1","f2","f3","f4","f5"]才对...
如果是对一维数组进行删除操作,就不会出现这样的问题...百思不得其解,请大家帮帮我吧,谢谢^_^

解决方案 »

  1.   

    先把arrTest[2]=["f1","f2","f3","f4","f5"]复制给arrTest[1]=["a","b","c","d","e"]
    然后删除arrTest[2]就可以了呀
      

  2.   

    splice 方法
    请参阅
    slice 方法 (Array)应用于:Array 对象
    要求
    版本 5.5
    从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
    参数
    arrayObj 
    必选项。一个 Array 对象。 
    start 
    必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。 
    deleteCount 
    必选项。要移除的元素的个数。 
    item1, item2,. . .,itemN 
    必选项。要在所移除元素的位置上插入的新元素。 
    说明
    splice 方法可以移除从 start 位置开始的指定个数的元素并插入新元素,从而修改 arrayObj。返回值是一个由所移除的元素组成的新 Array 对象。要求
    版本 5.5
      

  3.   

    还是不行,我试了slice和splice函数来实现对二维数组中删除一个一维数组元素,但是每次运行到该处就会报错
      

  4.   

    Array.prototype.remove=function(i){this.splice(i,1);}
    var arr = new Array();
    arr[0]=["1","2","3","4","5"]
    arr[1]=["a","b","c","d","e"]
    arr[2]=["f1","f2","f3","f4","f5"]
    arr[3]=["max","min","ave","sum","mod"]arr.remove(3);这样不行吗?