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
。无论如何,谢谢!没什么奇怪的。。。这是基本的。我建议你读一下-。在大多数编程语言中,它们的工作方式类似。如果您认为以上答案是正确的,请随意投票并接受作为答案。否则,请随时提出改进建议。