[英]Use filter on a a multi level object array?
假設我有一個醫療對象列表,我想在其中選擇所有類別為“ MEDICATION”並且還具有“ Trait”的對象,“ 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" )
但是,我該如何選擇所有帶有葯物的對象,以及帶有名稱===否定的對象的特征?
嵌套數組讓我失望。
謝謝!
您仍然可以使用過濾器,但在子數組上使用一些過濾器
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.