array数组扩展方法一、--删除数组中某个元素,并且修改下标,返回新数组

来源:互联网 发布:flash for mac安装 编辑:程序博客网 时间:2024/06/05 09:34

删除数组中某个元素,并且修改下标,返回新数组
比如如下数组:

var arr = ["a","b","c","d"];

将元素”c”从arr里面删除,返回新数组并改变数组下标,如:[“a”,”b”,”d”]

delete方法
delete删除完数组中的元素后,会把该删除的值置为undefined,并且数组的长度不会变。

delete arr[2]; // 返回值为:["a","b",,"d"],删除后的值变为两个逗号,长度不会变,值为undefined.

设置length方法
设置length的值改变数组的长度,的确会删除数组中的元素,返回的也是新数组,但是不能删除确定的某个值

arr.length = 2; // 返回值为:["a", "b"],确实返回的是新数组,长度也会随着变

slice方法
slice删除某一个值或者几个值,slice(index,len);
其中index是数组的下角标,len是长度

var arr1 = arr.slice(0,2); // 返回值为:["a", "b"]

shift方法

shift方法,删除原数组第一项,并且返回删除的值;改变原数组的长度和下标;如果数组为空则返回undefinedarr.shift();  //返回"a";原数组变为:["b","c","d"],长度和下标都会改变

pop方法

pop方法,删除元素的最后一项,并且返回删除的值;改变原数组的长度和下标;如果数组为空则返回undefinedarr.pop();  // 返回"d";原数组变为:["a","b","c"]

自定义方法
通过以上几种方式确实可以删除数组中的元素,但是不能满足我的需求,所以写了一下的自定义方法供参考,如果有新的提议或者存在问题,请及时纠正;

/** * 对Array对象添加扩展方法; *  n:所要删除数组元素的下标值; * 通过slice方法截取n之前和n之后的元素,在通过concat方法组成个新数组返回; */Array.prototype.arrDel = function(n){    if (n<0){        return this;    }else{        return this.slice(0,n).concat(this.slice(n+1,this.length));    }};
0 0
原创粉丝点击