Javascript 使用.find()从数组中删除元素
因此,我有一个数组,我想通过Javascript 使用.find()从数组中删除元素,javascript,arrays,Javascript,Arrays,因此,我有一个数组,我想通过.find()删除一个特定的元素。我应该如何使用它来达到这样的目的? 我知道它应该有一个条件,比方说 if(element === selectedItem) { Array.splice(index,1); } 但是我不知道如何将其包含到.find()中,从数组中删除项并不是查找()的目的 您需要的是Array.filter() 发件人: filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素 下面是一个例子: var编号=[1,
.find()
删除一个特定的元素。我应该如何使用它来达到这样的目的?
我知道它应该有一个条件,比方说
if(element === selectedItem)
{
Array.splice(index,1);
}
但是我不知道如何将其包含到
.find()
中,从数组中删除项并不是查找()
的目的
您需要的是Array.filter()
发件人:
filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素
下面是一个例子:
var编号=[1,2,3,4,5,6]
var evenNumbers=numbers.filter(number=>{
//返回计算结果为'true'的内容将
//将该项保留在结果数组中
返回编号%2==0
})
console.log(evenNumbers)
从数组中删除项不是find()
的目的
您需要的是Array.filter()
发件人:
filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素
下面是一个例子:
var编号=[1,2,3,4,5,6]
var evenNumbers=numbers.filter(number=>{
//返回计算结果为'true'的内容将
//将该项保留在结果数组中
返回编号%2==0
})
console.log(evenNumbers)
要查找索引,您需要indexOf
而不是find
,这样您就可以在此基础上执行进一步的操作。要查找索引,您需要indexOf
而不是find
,因此,您可以在此基础上执行进一步的操作。您可以使用findIndex而不是find:
var数据=[
{id:1,名字:'Betty'},
{id:2,名称:'Mark'},
{id:3,名字:'Elizabeth'},
{id:4,名字:'Samuel'}
];
var index=data.findIndex(x=>x.name=='Mark');
如果(索引>=0)
数据拼接(索引1);
控制台日志(数据)代码>您可以使用findIndex而不是find:
var数据=[
{id:1,名字:'Betty'},
{id:2,名称:'Mark'},
{id:3,名字:'Elizabeth'},
{id:4,名字:'Samuel'}
];
var index=data.findIndex(x=>x.name=='Mark');
如果(索引>=0)
数据拼接(索引1);
控制台日志(数据)代码>假设您有一个条件函数
,例如:
function condition(element) {
return element === selectedItem;
}
现在,您可以使用find查找元素的值,如下所示:
var myItem = myArray.find(condition);
然后
myArray.splice(myArray.indexOf(myItem), 1);
但是,如果您的数组可能要删除多个匹配项,则
var myItem;
while ((myItem = myArray.find(condition)) !== undefined) {
myArray.splice(myArray.indexOf(myItem), 1);
}
假设您有一个条件函数
,如:
function condition(element) {
return element === selectedItem;
}
现在,您可以使用find查找元素的值,如下所示:
var myItem = myArray.find(condition);
然后
myArray.splice(myArray.indexOf(myItem), 1);
但是,如果您的数组可能要删除多个匹配项,则
var myItem;
while ((myItem = myArray.find(condition)) !== undefined) {
myArray.splice(myArray.indexOf(myItem), 1);
}
有一个方法find()
,它返回满足给定条件的第一个元素。也许他需要那个,好吧,也许是,但之后他需要元素的索引。好的,这可以组合到findIndex
@Madhavan.V,但是作为OP发布的元素===selectedItem
,它看起来像是直接引用比较,应该与indexOf
一起工作。有一个方法find()
返回满足给定条件的第一个元素。也许他需要那个,好吧,也许是,但之后他需要元素的索引。好的,这可以组合到findIndex
@Madhavan.V,但是当OP发布元素===selectedItem
时,它看起来像是直接引用比较,应该与indexOf
一起工作,但是过滤器不会从原始数组中移除(正如OP所希望的那样)并将返回另一个数组。是的-但是我认为最好尽可能地返回。同意,但这就是问题所在。没有,但是-这是一个答案,它不直接回答问题,但仍然达到OP的目的。如果您不同意,请向下投票,然后继续。@Eugen AndreiColiban这就是您应该这样做的原因。但是筛选器不会从原始数组中删除(如OP所愿),并将返回另一个数组。正确-但是我认为最好尽可能地删除。同意,但这就是所有的问题,事实上站在那里的不是,但是-这是一个答案,不直接回答问题,但仍然实现了OP的目的。如果你不同意,就投否决票,然后继续前进。@Eugen AndreiColiban这就是为什么你应该这样做。