Arrays 使用多个条件获取筛选数组

Arrays 使用多个条件获取筛选数组,arrays,filter,array-filter,searchfiltercollection,Arrays,Filter,Array Filter,Searchfiltercollection,这是我的阵列的结构:- 项目阵列:- let项目=[ { id:1, 名称:“项目1”, 技术人员:[ 身份证号码:1 名称:“技术1” ] }, { id:2, 名称:“项目2”, 技术人员:[ 身份证号码:1 名称:“技术2” ] }, { id:3, 名称:“项目3”, 技术人员:[ 身份证号码:1 名称:“技术3” ] }, { id:4, 名称:“项目4”, 技术人员:[ 身份证号码:1 名称:“技术1” ] } ] 现在,我可以只获得Tech 1的过滤项目,如下所示:- let f

这是我的阵列的结构:-

项目
阵列:-

let项目=[
{
id:1,
名称:“项目1”,
技术人员:[
身份证号码:1
名称:“技术1”
]
},
{
id:2,
名称:“项目2”,
技术人员:[
身份证号码:1
名称:“技术2”
]
},
{
id:3,
名称:“项目3”,
技术人员:[
身份证号码:1
名称:“技术3”
]
},
{
id:4,
名称:“项目4”,
技术人员:[
身份证号码:1
名称:“技术1”
]
}
]
现在,我可以只获得Tech 1的过滤项目,如下所示:-

let filteredProjs=projects.filter(proj=>proj.techs.some(tech=>tech.name==“tech 1”))
我想获得筛选的技术名称='Tech 1'和'Tech 2'的项目。但当我按如下所示操作时,它将
不返回任何内容:-

let filteredProjs=projects.filter(proj=>proj.techs.some(tech=>tech.name==='tech 1'和&tech.name=='tech 2'))

如何执行此操作?

您可能需要尝试使用OR运算符(
|
)而不是AND(
&&

在计算机编程中,
仅当两侧的条件计算为
true
时才返回
true
。 在
的情况下,如果任何一侧的任一条件返回
,则其计算结果为


在你的例子中,我假设你想过滤掉那些技术名称等于'Tech 1'或'Tech 2'的项目。

奇怪的是,这是可行的!我想我需要做
&&
,以获得所有具有tech 1
tech 2技术的项目。但这样做,它会像你说的那样返回我
false
。无论如何,谢谢!没什么奇怪的。。。这是基本的。我建议你读一下-。在大多数编程语言中,它们的工作方式类似。如果您认为以上答案是正确的,请随意投票并接受作为答案。否则,请随时提出改进建议。