I want to filter my result in javascript
.
JavaScript
x
9
1
const ids =["2", "3"];
2
const data =
3
[
4
{"id":'1', 'name:'alex' , 'subject':'english' },
5
{"id":'2', 'name:'alex' , 'subject':'english' },
6
{"id":'3', 'name:'alex' , 'subject':'english' },
7
{"id":'4', 'name:'alex' , 'subject':'english' },
8
]
9
I want to filter data and remove those id’s found in ids
. This is what I have tried so far
JavaScript
1
4
1
const NewData = ids.reduce(function (key, index) {
2
return (data.filter(x => x.id !== key))
3
})
4
But it returns
JavaScript
1
6
1
[
2
{"id":'1', 'name:'alex' , 'subject':'english' },
3
{"id":'3', 'name:'alex' , 'subject':'english' },
4
{"id":'4', 'name:'alex' , 'subject':'english' },
5
]
6
I want to remove id 2
& ‘3’ from data
but it only remove id 2
.Hope You understand my issue.
Advertisement
Answer
No need to use reduce. A simple filter will work.
Example:
JavaScript
1
11
11
1
const ids = ["2", "3"];
2
3
const data = [
4
{ id: "1", name: "alex", subject: "english" },
5
{ id: "2", name: "alex", subject: "english" },
6
{ id: "3", name: "alex", subject: "english" },
7
{ id: "4", name: "alex", subject: "english" },
8
];
9
10
const new_data = data.filter((x) => ids.includes(x.id));
11
console.log(new_data);