I want to delete some item from my object :
clientData : {
1111 : [
{ID : 112, name : 'John',age : 23},
{ID : 113, name : 'Doe',age : 21},
{ID : 114, name : 'Stan',age : 24},
],
2222 : [
{ID : 222, name : 'Sara',age : 15},
{ID : 223, name : 'Wiliams',age : 61},
{ID : 224, name : 'Alan',age : 45},
],
}
The data that I want to delete is stored in an array of Id’s like this :
[112,223,114]
So the output should look like this :
clientData : {
1111 : [
{ID : 113, name : 'Doe',age : 21},
],
2222 : [
{ID : 222, name : 'Sara',age : 15},
{ID : 224, name : 'Alan',age : 45},
],
}
Any help please how to achieve this ? I really have no idea how to do it, and don’t found any solutions in internet.
>Solution :
I am assuming you are tying to filter out the original object. Hence, You can simply achieve it by using Array.forEach() method along with the Array.splice().
Live Demo :
const clientData = {
1111 : [
{ID : 112, name : 'John',age : 23},
{ID : 113, name : 'Doe',age : 21},
{ID : 114, name : 'Stan',age : 24},
],
2222 : [
{ID : 222, name : 'Sara',age : 15},
{ID : 223, name : 'Wiliams',age : 61},
{ID : 224, name : 'Alan',age : 45},
]
};
const invalidValues = [112, 223, 114];
Object.keys(clientData).forEach(key => {
clientData[key].forEach((obj, index) => {
if (invalidValues.includes(obj.ID)) {
clientData[key].splice(index, 1);
}
})
});
console.log(clientData);