从数组中删除元素,分为两种情况
第一种:知道这个元素是什么,将指定元素从数组中删除
给构造函数Array的原型对象上挂载两个方法,调用方法实现删除
- indexOf方法用于找出该元素在数组中对应的下标
- remove方法用于根据该下标,删除对应的元素
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] === val) return i;
}
return -1;
};
Array.prototype.remove = function (val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
var arr = ['123', '456', '789', '012']
console.log(arr);//['123', '456', '789', '012']
arr.remove('123')
console.log(arr);//['456', '789', '012']
第二种:知道该元素的下标,将指定下标对应的元素从数组中删除
- 知道要删除元素的下标,这样删除比较方便,直接调用数组的splice方法即可
- splice这个方法有两个参数,第一个是要删除元素的下标,第二个是从该下标开始删除几个元素,要想删除一个元素,第二个参数写1即可
- splice方法直接改变原数组,返回的是所删除的元素
var arr=['1','2','3','4','5']
arr.splice(2,1)//删除下标为2的元素
console.log(arr);//['1','2','4','5']