哪位大哥 能给我个数组中删除 指定下标的元素的函数要求删除后最大下标会改变
然后 兼容性 好例如 {1,2,3}
删除2了 length得成2

解决方案 »

  1.   


    Array.prototype.remove=function(n){if(isNaN(parseInt(n))) return false;if(n>=this.length || n<0) return false;for(i=n;i<this.length-1;i++) this[i]=this[i+1];this.pop();return true;}var a = [1,2,3];
    a.remove(1);
    alert(a.join(","));
      

  2.   

    Array.prototype.removeByIndex = function(i){
    if (i < this.length || i >= 0) {
    var ret = this.slice(0, i).concat(this.slice(i + 1));
    this.length = 0;
    this.push.apply(this, ret);
    }
    }
    var a = [1, 2, 3, 4, 5, 6];
    a.removeByIndex(3)
    alert(a)
      

  3.   

    arrCus = new Array();
    类似这样数组,删除了其中一项以后,那项是空的,但是还存在。
      

  4.   

    倒~~~!<script language="javascript">
    var arr = [1,2,3];
    alert(  arr +"|" + arr.length );var idx = 1;
    arr.splice( idx,2,arr[idx+1] );
    alert(  arr +"|" + arr.length );
    </script>
      

  5.   

    Array.prototype.removeByIndex = function(i){
        if (i < this.length && i >= 0) {
            var ret = this.slice(0, i).concat(this.slice(i + 1));
            this.length = 0;
            this.push.apply(this, ret);
        }
    }
    var a = [1, 2, 3, 4, 5, 6];
    a.removeByIndex(3)
    alert(a)
      

  6.   

    排除数组中大于 0 的元素,使用第三个参数进行排除。jQuery 代码:
    $.grep( [0,1,2], function(n,i){
      return n > 0;
    }, true);过滤数组中小于 0 的元素。jQuery 代码:
    $.grep( [0,1,2], function(n,i){
      return n > 0;
    });结果:
      

  7.   

    idx = 你要删除的元素位置
    arr.splice( idx,2,arr[idx+1] ); 就可以了,不用搞得那么麻烦.
      

  8.   

    <!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>无标题页</title>
        <script type="text/javascript">
        
        function RemoveKey()
        {
             var MyArray=new Array();
        for(var i=0;i<3;i++)
        {
          MyArray[i]=i+1;
        }
            var TT=document.getElementById('Text1');   
            delete MyArray[TT.value];
         }
        </script>
    </head>
    <body>
        <input id="Text1" type="text" />
        <input id="Button1" type="button" value="button" onclick="RemoveKey();" />
    </body>
    </html>
      

  9.   

    Array.prototype.remove=function(n){if(isNaN(parseInt(n))) return false;if(n>=this.length || n<0) return false;for(i=n;i<this.length-1;i++) this[i]=this[i+1];this.pop();return true;}var a = [1,2,3];
    a.remove(1);
    alert(a.join(","));
      

  10.   

    1楼的写法较完美!如果值不在数组中用splice好像得不到什么效果(最好有点提示)
      

  11.   


    arr.splice(idx, 1);
    就好了
    第一个参数是要删除项的index,第二个参数是删除的个数
      

  12.   


    UP,直接用js函数splice就可以了