Javascript 在多级对象阵列上使用过滤器?
假设我有一个医疗对象列表,其中我想选择所有具有“药物”类别和“特征”的对象,即一系列对象,特别是术语“否定”。例如:Javascript 在多级对象阵列上使用过滤器?,javascript,multidimensional-array,Javascript,Multidimensional Array,假设我有一个医疗对象列表,其中我想选择所有具有“药物”类别和“特征”的对象,即一系列对象,特别是术语“否定”。例如: [ { Score: 0.9978850483894348, Text: 'prozac', Category: 'MEDICATION', Type: 'BRAND_NAME', Traits: [ { Name: "SIGN" }, { Name: "NEGATION" }
[
{
Score: 0.9978850483894348,
Text: 'prozac',
Category: 'MEDICATION',
Type: 'BRAND_NAME',
Traits: [
{
Name: "SIGN"
},
{
Name: "NEGATION"
}
]
},
{
Text: "pulmonary embolism",
Category: "MEDICAL_CONDITION",
Type: "DX_NAME",
Traits: [
{
Name: "DIAGNOSIS",
Score: 0.9635574817657471
} ]
通常,对于过滤器,我可以很容易地选择所有对象:
Object.filter( obj => obj.Category === "MEDICATION" )
但我如何选择所有药物对象,以及名称===否定的对象的特征
嵌套数组使我感到不舒服
谢谢大家! 您仍然可以使用过滤器,但可以在子阵列上使用一些过滤器
Object.filter(obj => obj.Traits.some(t => t.Name === 'NEGATION'));
const值=[
{
得分:0.9978850483894348,
文本:“百忧解”,
类别:"药物",,
类型:“品牌名称”,
特点:[
{
姓名:“签名”
},
{
名称:“否定”
}
]
},
{
正文:“肺栓塞”,
类别:“医疗状况”,
键入:“DX_名称”,
特点:[
{
名称:'诊断',
分数:0.9635574817657471
}
]
}
].filter(obj=>obj.Category=='medicing'&&obj.Traits.some(t=>t.Name=='NEGATION');
console.log(值)代码>您仍然可以使用过滤器,但可以在子阵列上使用一些过滤器
Object.filter(obj => obj.Traits.some(t => t.Name === 'NEGATION'));
const值=[
{
得分:0.9978850483894348,
文本:“百忧解”,
类别:"药物",,
类型:“品牌名称”,
特点:[
{
姓名:“签名”
},
{
名称:“否定”
}
]
},
{
正文:“肺栓塞”,
类别:“医疗状况”,
键入:“DX_名称”,
特点:[
{
名称:'诊断',
分数:0.9635574817657471
}
]
}
].filter(obj=>obj.Category=='medicing'&&obj.Traits.some(t=>t.Name=='NEGATION');
console.log(值)代码>使用some
而不是find
可能在语义上更正确更改为使用some而不是find使用some
而不是find
可能在语义上更正确更改为使用some而不是find