让我们用几种不同的方法从一个数组中删除一个项目。
第一种方法:Array.filter方法
我们的第一个方法是使用Array.filter 方法。它假定我们要找的项目有可能在我们的数组中出现多次,因此我们要删除它的每个实例。
这里,我们有一个数字数组,我们想从该数组中删除4 。
const numbers = [1, 7, 4, 8, 4, 9, 2, 5, 8, 4];
const filtered = numbers.filter((x) => x !== 4);
console.log(filtered);
// [1, 7, 8, 9, 2, 5, 8];
在这里,我们可以看到我们已经从数组中删除了数字4 的每个实例。重要的是,我们没有改变输入数组,而是有一个新的变量,叫做filtered ,里面有我们的新数组。
第二种方法:查找和拼接
我们的下一个方法是假设我们要删除的元素在我们的数组中只出现一次。我们将使用indexOf 数组方法找到该元素的索引,然后我们将使用splice 数组方法。
注意:spice 实际上会对我们的输入数组进行变异。
const numbers = [1, 7, 4, 8];
const index = numbers.indexOf(4);
if (index > -1) {
numbers.splice(index, 1);
}
console.log(numbers);
// [1, 7, 8];
这种方法有几个重要的注意点。
- 这只会从我们的数组中删除
4中的第一个实例! - 这将突变我们的输入数组(也就是说,它改变了
numbers数组,而不是对其进行某种复制)。
结论
在JavaScript中,有几种方法可以从数组中删除一个项目:一种是不改变输入数组,并删除项目的每个实例;另一种是改变输入数组,只删除第一个实例。