我有一个对象数组,其中一些对象是相同的(重复的)。 在.forEach()循环中。在回调函数中,当它们一个接一个地输入另一个数组时,我想删除重复的对象。我试图循环遍历数组中的每个迭代以查找和删除重复项,但由于某种原因我无法获取它。
我试图进行循环并切下重复的切片。 我无法执行功能。 我无法获取整个数组并无法处理重复项。
.forEach(function(snap){
groupsJoin.push({groupId: snap)}
groupsJoin.sort((a, b) => (a.groupId > b.groupId) ? -1 : 1)
for (z=1; z<groupsJoin.length; z++) {
if (groupsJoin[z-1].groupId === groupsJoin[z].groupId) {
groupsJoin = groupsJoin.slice(0, z)
}
...Object.assign({}, groupsJoin)
}
答案 0 :(得分:2)
答案 1 :(得分:1)
如果无法使用new Set(groupsJoin)
一次过滤所有过滤器,请参考以下解决方案:
var groupsJoin = new Set();
arr.forEach(x => groupsJoin.add(x))
因此,您将获得一个具有唯一值的数组。 如果需要将地图保留在内部,请使用
代替 xx.groupId => groupsJoin.add(x.groupId)
这取决于您的情况。
var arr = [1, 2, 4, 5, 5, 4, 3, 9, 8, 11, 1];
var groupsJoin = new Set();
arr.forEach( x => groupsJoin.add(x));
console.log(groupsJoin);