I have an object that contains an array of objects.
things = new Object();
things.thing = new Array();
things.thing.push({place:"here",name:"stuff"});
things.thing.push({place:"there",name:"morestuff"});
things.thing.push({place:"there",name:"morestuff"});
I'm wondering what is the best method to remove duplicate objects from an array. So for example, things.thing would become...
{place:"here",name:"stuff"},
{place:"there",name:"morestuff"}
How about with some es6
magic?
things.thing = things.thing.filter((thing, index, self) =>
index === self.findIndex((t) => (
t.place === thing.place && t.name === thing.name
))
)
A more generic solution would be:
const uniqueArray = things.thing.filter((thing, index) => {
const _thing = JSON.stringify(thing);
return index === things.thing.findIndex(obj => {
return JSON.stringify(obj) === _thing;
});
});