js实现数组删除
数组删除方法
在JavaScript中,删除数组元素有多种方法,每种方法适用于不同场景。以下是常见的实现方式:
splice()方法
splice()方法可以删除指定位置的元素,并返回被删除的元素。该方法会修改原数组。
let arr = [1, 2, 3, 4, 5];
arr.splice(2, 1); // 从索引2开始删除1个元素
console.log(arr); // [1, 2, 4, 5]
filter()方法
filter()方法创建一个新数组,包含通过测试的元素。原数组不会被修改。
let arr = [1, 2, 3, 4, 5];
let newArr = arr.filter(item => item !== 3);
console.log(newArr); // [1, 2, 4, 5]
pop()和shift()方法
pop()删除数组最后一个元素,shift()删除数组第一个元素。
let arr = [1, 2, 3];
arr.pop(); // 删除3
arr.shift(); // 删除1
console.log(arr); // [2]
delete操作符
使用delete操作符可以删除数组元素,但会在原位置留下empty。
let arr = [1, 2, 3];
delete arr[1];
console.log(arr); // [1, empty, 3]
设置length属性
通过修改数组的length属性可以截断数组。
let arr = [1, 2, 3, 4, 5];
arr.length = 3;
console.log(arr); // [1, 2, 3]
清空数组
要完全清空数组,可以将length设为0或直接赋值为空数组。
let arr = [1, 2, 3];
arr.length = 0; // 方法1
arr = []; // 方法2
删除特定值的所有实例
要删除数组中所有特定值的实例,可以结合filter()方法。

let arr = [1, 2, 3, 2, 4, 2];
let valueToRemove = 2;
arr = arr.filter(item => item !== valueToRemove);
console.log(arr); // [1, 3, 4]
性能考虑
对于大型数组,splice()方法比filter()更快,因为它直接修改原数组而不创建新数组。但splice()会改变原数组,这在某些场景下可能不符合需求。






