通过某个字段去重数组对象,例如:id
var arr = [{
id: 0,
test: "艾希"
},
{
id: 7,
test: "安妮"
},
{
id: 7,
test: "维嘉"
},
{
id: 7,
test: "无极"
},
{
id: 6,
test: "剑姬"
},
{
id: 0,
test: "拉克丝"
}
]
方法1
let map = {};
let mapArray = [];
for(const i in arr) {
let item = arr[i];
map[item['id']] = {
arr: (map[item['id']]?map[item['id']].arr:[]).concat([item]),
id:item.id
};
}
for(var key in map) {
mapArray.push(map[key]);
}
console.log(mapArray);
结果
image.png
方法2
var idList = [...new Set(arr.map((e)=>{return e.id}))];
var list = [];
idList.forEach((e)=>{
var item = arr.filter((res)=>{
return res.id==e;
})
list.push({
id:e,
list:item
})
})
console.log(list)
结果image.png
网友评论