有两个办法,最简单的是这样
<script language="JavaScript">
<!--
//** power by fason
var a = [1,2,3];
for(i in a)alert(a[i])
delete a[1];
for(i in a)alert(a[i])
</script>delete后用for in来遍历会忽略

解决方案 »

  1.   

    设置数组的length属性来截断数组是惟一一种缩短数组长度的方法.
    用delete运算符删除数组中的元素,只是把元素变成未定义,
    但是数组的length还并不会改变.
      

  2.   

    <script language="JavaScript">
    var a = [1,2,3];
    var b = new Array(); 
    var i = 0;
    alert(a.length);
    delete a[1];
    for(b[i++] in a){}
    a=b;
    alert(a.length)
    alert(a);
    </script>
      

  3.   

    我都用 pop 方法
    数组的表示我也不是用这种方案
    我是这么表示的:var arr = new Array(1,2,3,4)
    alert("POP之前:" + arr.length)
    arr.pop()
    alert("POP之后:" + arr.length)如果你要把中间某个元素删除, 你需要再做一个函数做做 swap
    function removeArrItem(arr, index)
    {
     //首先排除非法的参数传递
     if(!arr.length||arr.length<=0||arr.length <= index)return;
     for(var i = index; i < arr.length; i++)
        arr[i] = arr[i+1];
     arr.pop()
    }
      

  4.   

    function removeArrItem(arr, index)
    {
     //首先排除非法的参数传递
     if(!arr)return;
     if(!arr.length)return;
     if(arr.length<=0||arr.length <= index)return;
     for(var i = index; i < arr.length; i++)
        arr[i] = arr[i+1];
     arr.pop()
    }
      

  5.   

    /*****************************************************************
      1、Name Array.prototype.del
         Purpose 删除数组中的元素
         Date 2004-1-12
         Param index 表示第几项,从0开始算起     Return Array
     *****************************************************************/
     Array.prototype.del=function(index) {
         if(index < 0)  // 如果index < 0,则不进行任何操作。
            return this;
        else
            return this.slice(0 , index).concat(this.slice(index + 1,this.length));
    }使用方法:
     var aa = new Array("1" , "2" , "3" , "4");
     alert(aa.length); aa = aa.del(1);
     alert(aa.length);