js 实现删除数组指定元素

需求

删除数组中的指定元素,阁下该如何应对

分析

有多种方法可以实现 JavaScript 数组删除指定元素。以下是其中两种常用的方法:

1. 使用 splice() 方法

splice() 方法是 JavaScript 中用于修改数组的原生方法之一,它可以用来删除数组中的元素。它的语法如下:

array.splice(start, deleteCount, item1, item2, ...)

其中,start 参数表示开始删除的位置,deleteCount 参数表示需要删除的元素个数,而 item1, item2, ... 表示要添加到数组中的元素,如果不需要添加元素则可以省略这部分参数。通过将 deleteCount 参数设置为 1,我们就可以删除数组中指定位置的元素。

例如,下面的代码演示了如何使用 splice() 方法删除数组中的指定元素:

let arr = ['apple', 'banana', 'orange', 'grape'];
let index = arr.indexOf('banana'); // 找到要删除的元素的位置
if (index > -1) {
    
    
    arr.splice(index, 1); // 删除指定元素
}
console.log(arr); // ["apple", "orange", "grape"]

2. 使用 filter() 方法

filter() 方法是 JavaScript 中用于筛选数组的原生方法之一,它可以用来删除数组中的元素。它的语法如下:

array.filter(callback(element[, index[, array]])[, thisArg])

其中,callback 函数用于对数组进行筛选,可以接受三个参数:element 表示当前元素的值,index 表示当前元素的索引,array 表示源数组。如果 callback 函数返回 true,则将当前元素保留在数组中,否则将其删除。

例如,下面的代码演示了如何使用 filter() 方法删除数组中的指定元素:

let arr = ['apple', 'banana', 'orange', 'grape'];
let filtered = arr.filter(function(value, index, arr) {
    
    
    return value !== 'banana'; // 删除指定元素
});
console.log(filtered); // ["apple", "orange", "grape"]

3. 使用 splice 和展开运算符(ES6):

var array = [1, 2, 3, 4, 5];
var element = 3; // 要删除的元素


array = [...array.slice(0, array.indexOf(element)), ...array.slice(array.indexOf(element) + 1)];

在上述代码中,我们使用 slice 方法获取要删除的元素之前和之后的部分,并使用展开运算符将它们合并成一个新的数组

新的需求

如果想要删除二维数组中的指定项呢,阁下又该如何应对

新的分析

要从数组 [[1,2], [2,3], [5,6]] 中删除元素 [2,3],你可以使用 Array.prototype.filter() 方法。

以下是示例代码,展示如何删除指定元素:

var arr = [[1,2], [2,3], [5,6]];
arr = arr.filter(function(item){
    
    
  return item[0] !== 2 && item[1] !== 3;
});
console.log(arr); // 输出:[[1, 2], [5, 6]]

在上述代码中,我们使用 filter() 方法来创建一个新的数组,该数组只包含满足指定条件的元素。在回调函数中,我们检查每个元素是否等于 [2, 3],如果不是,则将其保留在新的数组中。

最后,我们打印输出新的数组,确认已经删除了 [2, 3]。

注意,filter()方法也不会改变原始数组,而是返回一个新的数组,因此我们将新的数组重新赋值给变量 arr。

猜你喜欢

转载自blog.csdn.net/qq_53810245/article/details/133442416