假设我有一个医疗对象列表,我想在其中选择具有“MEDICATION”类别并且还具有“Trait”(一个对象数组)的所有对象,特别是术语“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" )
但是我如何选择所有具有药物的对象,以及具有名称 === NEGATION 的对象的特征?
嵌套数组让我失望。
谢谢!
最佳答案
您仍然可以使用过滤器,但在子数组上使用一些过滤器
Object.filter(obj => obj.Traits.some(t => t.Name === 'NEGATION'));
const values = [
{
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
}
]
}
].filter(obj => obj.Category === 'MEDICATION' && obj.Traits.some(t => t.Name === 'NEGATION'));
console.log(values);
关于javascript - 在多级对象数组上使用过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53824335/