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

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

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

pop方法

pop方法,删除元素的最后一项,并且返回删除的值;改变原数组的长度和下标;如果数组为空则返回undefined
arr.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));
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值