【发布时间】:2019-10-11 12:21:53
【问题描述】:
我有一个充满对象的数组。几乎所有对象都有不同数量的键值对。其中一些对象具有相同的键值对。
有没有删除所有子对象重复项的好方法? (sub-object-duplicate = 和 all 键值对可以在另一个对象中找到的对象。)
在下面的示例中,例如它将删除所有中间对象,只留下第一个和最后一个。
提前非常感谢:)
我得到的最接近的是使用 here 的这个,但我不知道如何添加 if 条件以仅检查属性是否存在。
通过多个属性(id 和 name)唯一
arr.filter((v,i,a)=>a.findIndex(t=>(t.id === v.id && t.name===v.name))===i)
输入
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"
}
}
]
预期输出
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",
}
}
]
【问题讨论】:
-
正确地说.. @mplungjan
-
@mplungjan 我试图从这里应用多个东西:stackoverflow.com/questions/2218999/… 但我只能让它工作,如果我事先知道一个对象有哪些键。 : (
-
@mplungjan 我编辑了我尝试过的内容,并且最接近我想要的内容。 ??????
-
解决方案几乎完成;)
标签: javascript arrays object key