js中删除数组元素的方法总结。

子曰:“学而时习之,不亦说乎?”
虽然我觉得这里的习字应该理解为实践练习,而不是复习,但是这里权当我理解错了吧o(╯□╰)o。
今天就整理一下js中删除数组元素的方法,包括原生API和自定义API。

原生API:

  1. 删除数组最后一个元素,arr.pop(),并返回该元素,对原数组有影响。
  2. 删除数组第一个元素,shift(),并返回该元素,对原数组有影响。
  3. 删除从数组start下标开始,往后count个元素。 splice(start, count),返回删除元素/数组,对原数组有影响。
    {splice的完整用法应该是 splice(start,delCount, item1,item2…),即删除指定元素后,添加一些新元素,如果不写新元素,则为删除效果}

自定义API:
4.通过给Array对象的原型对象prototype添加一个新方法来实现。原理是找到传入下标/元素位置后,让后面的数组元素覆盖前面的数组元素,最后数组长度减1.

/**
 *删除数组指定下标或指定元素。
 */
Array.prototype.remove = function (obj) {
  for (var i = 0; i < this.length; i++) {//遍历数组。
    var temp = this[i];
    if (!isNaN(obj)) {//判断传入参数是下标数字还是元素。是下标数字,就将temp赋值为i;有个bug,如果传递的元素是‘1234’这样字符串形式的数字,就无法删除。
      temp = i;
    }
    if (temp == obj) {//当遍历到传入的下标/元素位置时,进入下面循环。
      for (var j = i; j < this.length; j++) {//将下标为i之后的元素,往前移动。这样就覆盖了该下标。最后记得数组长度减1.
        this[j] = this[j + 1];
      }
      this.length = this.length - 1;
    }
  }
}


var arr = ['jude', 'wangwang', '1234', '通知制品', {
  uname: 'tom',
  score: 500
}]
var str = '1234';
console.log(arr);
arr.remove(2);
arr.remove('jude')
console.log(arr);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值