今天在写代码的过程中,javascript的数组,想要从一个数组中将指定的元素删除,刚开始想的是直接将该元素直接等于null,但是这样在数组中并没有移除元素,也就是说数组长度没有改变,后来就想到了以下方法:
方法一:
/*
* 方法:Array.remove(dx)
* 功能:根据元素值删除数组元素.
* 参数:元素值
* 返回:在原数组上修改数组
*/
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) {
return i;
}
}
return -1;
};
Array.prototype.removevalue = function (val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
/*
* 方法:Array.remove(dx)
* 功能:根据元素位置值删除数组元素.
* 参数:元素值
* 返回:在原数组上修改数组
*/
Array.prototype.remove = function (dx) {
if (isNaN(dx) || dx > this.length) {
return false;
}
for (var i = 0, n = 0; i < this.length; i++) {
if (this[i] != this[dx]) {
this[n++] = this[i];
}
}
this.length -= 1;
};
方法二:
function remove(index){
return arr.slice(0,index).concat(arr.slice(index+1,arr.length))
}
其中第二种方法的效率要高于第一种方法。