Javascript 删除数组中指定元素(5种方法)
// 方法1: 使用 filter 函数
function removeElement1(arr, elem) {
return arr.filter(e => e !== elem);
}
// 方法2: 使用 for 循环和 splice 方法
function removeElement2(arr, elem) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === elem) {
arr.splice(i, 1);
i--; // 因为已经删除了一个元素,所以索引要回退一个位置
}
}
return arr;
}
// 方法3: 使用 while 循环和 pop 方法
function removeElement3(arr, elem) {
let i = arr.length - 1;
while (i >= 0) {
if (arr[i] === elem) {
arr.pop();
}
i--;
}
return arr;
}
// 方法4: 使用 reduce 函数
function removeElement4(arr, elem) {
return arr.reduce((acc, e) => {
if (e !== elem) acc.push(e);
return acc;
}, []);
}
// 方法5: 使用 ES6 的 Set 结构
function removeElement5(arr, elem) {
return [...new Set(arr.filter(e => e !== elem))];
}
// 示例使用
const myArray = [1, 2, 3, 4, 5];
const elementToRemove = 3;
console.log(removeElement1(myArray, elementToRemove)); // [1, 2, 4, 5]
console.log(removeElement2(myArray, elementToRemove)); // [1, 2, 4, 5]
console.log(removeElement3(myArray, elementToRemove)); // [1, 2, 4]
console.log(removeElement4(myArray, elementToRemove)); // [1, 2, 4, 5]
console.log(removeElement5(myArray, elementToRemove)); // [1, 2, 4, 5]
每种方法都有其优点和适用场景。例如,filter
方法适合创建新数组,而 splice
和循环则在原地修改数组。选择哪种方法取决于你的具体需求。
评论已关闭