js删除数组对象重复数据
程序员文章站
2022-03-01 12:39:42
...
数据源是一个数组,要去掉后面重复id的项,这里使用的是双循环嵌套。
第一次循环原数组,第二次循环内部users的时候要倒着循环,要不然会删除不净,因为splice这个方法会改变原数组,当原数组改变后对应的下标就会改变,但是循环中的’下标’还是之前的,就会错位删除了。
let arr = [
{
users: [
{ id: '111' },
{ id: '999' },
{ id: '666' },
]
},
{
users: [
{ id: '333' },
{ id: '888' }
]
},
{
users: [
{ id: '222' },
{ id: '999' },
{ id: '111' },
]
},
{
users: [
{ id: '333' },
{ id: '777' },
{ id: '555' },
]
}
]
function setarr (val) {
let a = []
val.forEach( (v, index) => {
for(let i = v.users.length - 1; i >= 0; i--) {
if(a.indexOf(v.users[i].id) != -1) {
val[index].users.splice(i, 1)
} else {
a.push(v.users[i].id)
}
}
})
}
setarr(arr)
上一篇: ASP.NET 判断是否是时间格式
下一篇: 2018前端必考面试题总结6