【发布时间】:2019-03-21 19:51:55
【问题描述】:
我发现了一些关于如何删除对象中重复值的参考资料,例如this、this、this... 在所有这些示例(以及我发现的其他示例)中,都是针对简单对象的,但是我的情况更“复杂”。
我有一个数组,其中每个索引都有你的值和一个对象。我创建一个简单的例子来解释:
var data = [
{
"name": "Kyle",
"item": [
{
"id": 1,
"name": "name1"
},
{
"id": 2,
"name": "name2"
},
{
"id": 3,
"name": "name3"
},
{
"id": 2,
"name": "name2"
}
{
"id": 3,
"name": "name3"
}
]
},
{
"name": "Liza",
"item": [
{
"id": 1,
"name": "name1"
},
{
"id": 1,
"name": "name1"
},
{
"id": 2,
"name": "name2"
}
]
},
{
"name": "John",
"item": [
{
"id": 1,
"name": "name1"
},
{
"id": 1,
"name": "name1"
},
{
"id": 4,
"name": "name4"
},
{
"id": 4,
"name": "name4"
},
{
"id": 2,
"name": "name2"
}
]
},
{
"name": "Melissa",
"item": [
{
"id": 2,
"name": "name2"
}
]
}
]
您如何看到,在我的 item 对象中我有重复值...我想删除我的对象中的这些重复值。
一种方法(我认为)是复制我的列表并使用forEach/map/filter,但我不知道该怎么做。
我试过了,但是不行:
let dataCopy = data;
dataCopy.forEach(dataItem => {
listPrev.forEach(dataPrev => {
//??
//and or...
if(dataPrev.item.id == dataItem.item.id){
//??
}
})
})
我正在努力获得这样的回报:
var data = [
{
"name": "Kyle",
"item": [
{
"id": 1,
"name": "name1"
},
{
"id": 2,
"name": "name2"
},
{
"id": 3,
"name": "name3"
},
]
},
{
"name": "Liza",
"item": [
{
"id": 1,
"name": "name1"
}
{
"id": 2,
"name": "name2"
}
]
},
{
"name": "John",
"item": [
{
"id": 1,
"name": "name1"
},
{
"id": 4,
"name": "name4"
},
{
"id": 2,
"name": "name2"
}
]
},
{
"name": "Melissa",
"item": [
{
"id": 2,
"name": "name2"
}
]
}
]
我该怎么做? 有人可以帮助我吗?
【问题讨论】:
标签: javascript arrays json