js实现数组删除
删除数组元素的几种方法
在JavaScript中,有多种方法可以删除数组中的元素。以下是几种常用的方法:
1. 使用splice方法
splice()方法可以删除数组中的元素,并返回被删除的元素。该方法会改变原数组。
let arr = [1, 2, 3, 4, 5];
arr.splice(2, 1); // 从索引2开始删除1个元素
console.log(arr); // 输出: [1, 2, 4, 5]
2. 使用filter方法
filter()方法创建一个新数组,包含通过测试的元素。原数组不会被修改。
let arr = [1, 2, 3, 4, 5];
let newArr = arr.filter(item => item !== 3);
console.log(newArr); // 输出: [1, 2, 4, 5]
3. 使用pop方法
pop()方法删除数组的最后一个元素,并返回该元素。该方法会改变原数组。
let arr = [1, 2, 3, 4, 5];
arr.pop();
console.log(arr); // 输出: [1, 2, 3, 4]
4. 使用shift方法
shift()方法删除数组的第一个元素,并返回该元素。该方法会改变原数组。
let arr = [1, 2, 3, 4, 5];
arr.shift();
console.log(arr); // 输出: [2, 3, 4, 5]
5. 使用delete操作符
delete操作符可以删除数组中的元素,但不会改变数组的长度,被删除的元素会变为undefined。
let arr = [1, 2, 3, 4, 5];
delete arr[2];
console.log(arr); // 输出: [1, 2, empty, 4, 5]
6. 使用slice和concat方法
结合使用slice()和concat()方法可以删除指定位置的元素,且不会改变原数组。
let arr = [1, 2, 3, 4, 5];
let newArr = arr.slice(0, 2).concat(arr.slice(3));
console.log(newArr); // 输出: [1, 2, 4, 5]
7. 使用reduce方法
reduce()方法可以通过累加器来构建新数组,跳过需要删除的元素。

let arr = [1, 2, 3, 4, 5];
let newArr = arr.reduce((acc, curr) => curr === 3 ? acc : [...acc, curr], []);
console.log(newArr); // 输出: [1, 2, 4, 5]
选择合适的方法
- 如果需要修改原数组并删除特定位置的元素,使用
splice()。 - 如果需要创建一个新数组并过滤掉某些元素,使用
filter()。 - 如果只需要删除数组的首尾元素,使用
pop()或shift()。 - 如果需要保留数组长度但清空某个位置,使用
delete操作符。
每种方法都有其适用场景,根据具体需求选择最合适的方法。






