我有一个包含一些重复对象的集合,我想要过滤器数组并获得唯一的集合 这是我的数组
renderSpacedBitmapString()
我想像下面这样过滤
array=[{id:1,name:'A'},{id:2,name:'B'},{id:3,name:'C'},{id:1,name:'A'},{id:3,name:'C'}];
我在上面尝试过并且获得了唯一的值,但是我想要完整的对象
答案 0 :(得分:0)
您可以在reduce的帮助下完成
let arr=[{id:1,name:'A'},{id:2,name:'B'},{id:3,name:'C'},{id:1,name:'A'},{id:3,name:'C'}];
let op = Object.values(arr.reduce((o,c)=>{
if(!o[c.id]) o[c.id] = c;
return o; }, {} ))
console.log(op);
答案 1 :(得分:0)
您可以按以下方式使用arrray.filter,
var unique = {}
var array=[{"id":1,"name":'A'},{"id":"2","name":'B'},{"id":3,"name":'C'},{"id":1,"name":'A'},{"id":3,name:'C'}];
var arrFiltered = array.filter(obj => !unique[obj.id] && (unique[obj.id] = true));
console.log(arrFiltered)
答案 2 :(得分:0)
我认为你快到了。只需将对象而不是ID添加到数组即可,即:
Failed to send request: {"jsonrpc":"2.0","id":"9354","method":"getVM","params":{}}
如果我理解您的问题,应该这样做。
答案 3 :(得分:0)
将 Id 替换为数组的相应键。
arrayUnique(array)
{
let result:any=[];
let compare:any=[];
array.forEach((val,ind)=>{
if(!compare.includes(val.id))
{
compare.push(val.id);
result.push(val);
}
});
console.log(result);
}