I have an array of JSON like below
const data = [
{
"uniqueId": 1233,
"serviceTags": [
{
"Id": 11602,
"tagId": "FRRRR",
"missingRequired": [
],
"summaries": [
{
"contract": "ACTIVE",
},
{
"contract": "INACTIVE",
}
],
"lttributes": {
}
}
],
},
{
"uniqueId": 34555,
"serviceTags": [
{
"Id": 11602,
"tagId": "JWJN2",
"missingRequired": [
],
"summaries": [
{
"contract": "ACTIVE",
},
{
"contract": "INACTIVE",
}
],
"lttributes": {
}
}
],
},
{
"uniqueId": 44422,
"serviceTags": [
{
"Id": 11602,
"tagId": "ABC",
"missingRequired": [
],
"summaries": [
{
"contract": "ACTIVE",
},
{
"contract": "INACTIVE",
}
],
"lttributes": {
}
},
{
"Id": 11602,
"tagId": "BBC",
"missingRequired": [
],
"summaries": [
{
"contract": "ACTIVE",
},
{
"contract": "INACTIVE",
}
],
"lttributes": {
}
}
],
}
]
I want to filter array of object by below tagId
const tagId = ['ABC','FRRRR'];
filter array of json should be like
[
{
"uniqueId": 1233,
"serviceTags": [
{
"Id": 11602,
"tagId": "FRRRR",
"missingRequired": [
],
"summaries": [
{
"contract": "ACTIVE",
},
{
"contract": "INACTIVE",
}
],
"lttributes": {
}
}
],
},
{
"uniqueId": 44422,
"serviceTags": [
{
"Id": 11602,
"tagId": "ABC",
"missingRequired": [
],
"summaries": [
{
"contract": "ACTIVE",
},
{
"contract": "INACTIVE",
}
],
"lttributes": {
}
}
],
}
]
try to do by below way but I am not able to get exact output
const r = data.filter(d => d.serviceTags.every(c => tagId.includes(c.tagId)));
console.log(r);
some()instead ofevery()in your attempt it will filter the required objects out, but won't filter theserviceTagsarrays themselves.