本文介绍了在 JavaScript 中通过扩展 Array 原型来删除数组元素的方法。提供了按值删除(deleteValue)和按索引删除(deleteIndex)两种实现方式,利用 slice 和 concat 方法生成新数组,从而确保删除操作后数组长度自动减小。
JavaScript 数组元素删除实现
具体实现代码如下所示:
代码片段如下:
/**
* 根据指定值删除数组中的元素
*
* @param mixed value 需要删除的元素值
* @returns array 返回处理后的新数组
*/
Array.prototype.deleteValue = function(value){
var i = 0;
for(i in this){
if(this[i] == value) break;
}
return this.slice(0, i).concat(this.slice(parseInt(i, 10) + 1));
}
//示例代码
var test = new Array(1,5,3,4,2);
//输出数组原始长度5
console.log(test.length);
//删除值为4的元素
test = test.deleteValue(4);
//输出删除后的数组[1, 5, 3, 2]
console.log(test);
//输出删除后的数组长度4
console.log(test.length);
/**
* 根据索引位置删除数组元素
*
* @param int index 元素的索引位置
* @returns array 返回处理后的新数组
*/
Array.prototype.deleteIndex = function(index){
return this.slice(0, index).concat(this.slice(parseInt(index, 10) + 1));
}
//示例代码
var test = new Array(1,5,3,4,2);
//输出数组原始长度5
console.log(test.length);
//删除索引为1的元素
test = test.deleteIndex(1);
//输出删除后的数组[1, 3, 4, 2]
console.log(test);
//输出删除后的数组长度4
console.log(test.length);