javascript 删除数组中某一项

陌路散爱 提交于 2020-03-03 18:17:23

定义一个数组arr:

var arr = new Array(3);
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';

console.log(arr.length)//输出3
  • 删除数组中第一项

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

var fObject = arr.shift();
console.log(fObject); //输出'a';
console.log(arr); //输出['b','c']
  • 删除数组中最后一项

pop() 方法用于删除并返回数组的最后一个元素。

var lObject = arr.pop();
console.log(lObject); //输出'c';
console.log(arr); //输出['a','b']
  • 删除数组中任意项

1. splice(index,howmany,item1,…,itemX) 方法向/从数组中添加/删除项目,然后返回被删除的项目。

  1. 参数设置:
    • index :必需。从数组第零项开始,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
    • howmany:必需。要删除的项目数量,为0时不删除项目。
    • item1, …, itemX :可选。向数组添加的新项目。
  2. 返回值:
    • array,包含被删除项目的新数组。

首先获取需要删除的一项的数组中的索引:

Array.prototype.indexOf = function(val) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == val) return i;
    }
    return -1;
};

使用splice()方法删除这一项:

Array.prototype.remove = function(val) {
    var index = this.indexOf(val);
    if (index > -1) {
        this.splice(index, 1);
    }
};
arr.splice(0,2,'aa','bb');//返回 ['aa','bb','c'];

arr.remove('bb');//返回['aa', 'c']

注:slice(start, end) 方法与之不同,slice()可从已有的数组中返回选定的元素,并不会修改数组,而是返回一个子数组。

2. delete方法 删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变。

语法:delete object.property ;delete object[‘property’]

delete arr[2]; //返回['a', ,'c']

3. slice(start, end)方法

Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!