Reputation: 1079
I am facing a critical problem in angular
I have the following arrays
dataArray (3) [21, 21, 23]
and the below is actual Data from API
ViewData = [
{
"id":5,
"name":"Private",
"description":"",
},
{
"id":7,
"name":"Semi Private",
"description":"",
},
{
"id":8,
"name":"laboratory",
"description":"",
},
{
"id":15,
"name":"Test",
},
{
"id":16,
"name":"Testss",
"description":null,
},
{
"id":18,
"name":"TestSan",
"description":null,
},
{
"id":21,
"name":"TestBBB",
"description":"test",
},
{
"id":23,
"name":"TestOne",
"description":null,
},
{
"id":2,
"name":"Standard ward",
"description":"",
"sharing":4,
"set_value":2
}
]
I have to process ViewData (2nd array) after processing ViewData should not contain JSON Objects which ids are present in dataArray(I mean if the any id of ViewData is equal to id which is in DataArray i want to remove that JSON Object from View Data) (Out put should be like below )
ViewData = [
{
"id":5,
"name":"Private",
"description":"",
},
{
"id":7,
"name":"Semi Private",
"description":"",
},
{
"id":8,
"name":"laboratory",
"description":"",
},
{
"id":15,
"name":"Test",
},
{
"id":16,
"name":"Testss",
"description":null,
},
{
"id":18,
"name":"TestSan",
"description":null,
},
{
"id":2,
"name":"Standard ward",
"description":"",
"sharing":4,
"set_value":2
}
]
Upvotes: 2
Views: 7290
Reputation: 176896
you can make use of filter()
and includes()
method for this
const arryids = {1,3,9};//remove id array
const filteredarray = this.ViewData.filter(d=> !array.includes(d.id));
this.ViewData= filteredarray;
Upvotes: 4
Reputation: 68635
Using filter
with combination includes
. filter
will return a new array based on the condition. Those items for which the condition returns true, will be added in the output array.
const ids = [21, 23];
const viewData = [
{
"id":5,
"name":"Private",
"description":"",
},
{
"id":7,
"name":"Semi Private",
"description":"",
},
{
"id":8,
"name":"laboratory",
"description":"",
},
{
"id":15,
"name":"Test",
},
{
"id":16,
"name":"Testss",
"description":null,
},
{
"id":18,
"name":"TestSan",
"description":null,
},
{
"id":21,
"name":"TestBBB",
"description":"test",
},
{
"id":23,
"name":"TestOne",
"description":null,
},
{
"id":2,
"name":"Standard ward",
"description":"",
"sharing":4,
"set_value":2
}
];
const filteredData = viewData.filter(item => !ids.includes(item.id));
console.log(filteredData);
Upvotes: 0
Reputation: 68393
Use filter
ViewData = ViewData.filter( s => !dataArray.includes( s.id ) )
Upvotes: 2