js二维数组去重

let aa = [[{ a:1,b:2 },{ a:4,b:3 },{ a:1,b:3 }],[{ a:5,b:2 },{ a:2,b:8 },{ a:5,b:4 },{ a:3,b:7 }]];
怎么变成 let aa = [[{ a:4,b:3 },{ a:1,b:3 }],[{ a:5,b:2 },{ a:2,b:8 },{ a:3,b:7 }]];
麻烦各位老哥写一下步骤

阅读 1.6k
1 个回答
let aa = [[{ a:1,b:2 },{ a:4,b:3 },{ a:1,b:3 }],[{ a:5,b:2 },{ a:2,b:8 },{ a:5,b:4 },{ a:3,b:7 }]];

aa.map(item=>Object.values(item.reduce((acc,cur)=>((acc||={})[cur.a]=cur,acc),{})))

image.png
不懂你保留那个?
image.png

let aa = [[{ a:1,b:2 },{ a:4,b:3 },{ a:1,b:3 }],[{ a:5,b:2 },{ a:2,b:8 },{ a:5,b:4 },{ a:3,b:7 }]];
let newArr = [];

aa.forEach(items=>{
 let newItem =[];
 let set = new Set();
 items.forEach(item=>{
  if(!set.has(item.a)){
    newItem.push(item);
    set.add(item.a);
  }
 })
 newArr.push(newItem);
})

console.log(newArr);

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题