I have an array full of objects. Almost all objects have a different amount of keys value pairs. Some of these object have the same key value pairs.
Is there a nice way to remove all the sub-object-duplicates? (sub-object-duplicate = and object whose all key-value-pairs can be found in another object.)
In the example below e.g. it would remove the all middle objects and leave only the first and last one.
Many thanks in advance : )
The closest I got is using this from here, but I do not know how to add the if condition to only check for a property if it exists.
Unique by multiple properties ( id and name )
arr.filter((v,i,a)=>a.findIndex(t=>(t.id === v.id && t.name===v.name))===i)
Input
input = [
{
"key0": {
"key1": "value1",
"key2": "value1",
"key3": "value1",
"key4": "value1",
"key5": "value1"
}
},
{
"key0": {
"key1": "value1",
"key3": "value1",
"key5": "value1"
}
},
{
"key0": {
"key1": "value1",
"key2": "value1",
"key3": "value1"
}
},
{
"key0": {
"key1": "value1",
"key2": "value1",
"key5": "value1"
}
},
{
"key0": {
"key1": "value1",
"key2": "value2",
"key3": "value2",
"key4": "value2",
"key5": "value2",
"key6": "value2"
},
{
"key0": {
"key1": "value2",
"key2": "value2",
"key3": "value2",
"key4": "value2",
"key5": "value2",
"key6": "value2"
}
}
]
Expected output
output = [
{
"key0": {
"key1": "value1",
"key2": "value1",
"key3": "value1",
"key4": "value1",
"key5": "value1"
}
},
{
"key0": {
"key1": "value2",
"key2": "value2",
"key3": "value2",
"key4": "value2",
"key5": "value2",
"key6": "value2",
}
}
]