问题描述
我正在尝试获取一组对象中的唯一对象。假设对象如下所示。
values = [
{ id: 10,available: true },{ id: 10,available: false },{ id: 11,{ id: 12,available: false }
];
唯一对象应该返回如下:如果重复对象包含available:true
需要available:true
result = [
{ id: 10,available: false }
];
解决方法
解决您的问题..
函数 myfilter()
返回一个具有唯一 id
值的数组,如果存在与 available: true
一起存在的数组,则优先
var values = [
{ id: 10,available: true },{ id: 10,available: false },{ id: 11,{ id: 12,available: false }
];
function myfilter()
{
var filtarray=[];
values.forEach(function(element) {
var idxfound = filtarray.findIndex(function(ele2) {
return ele2.id === element.id;
});
if (idxfound==-1)
{
filtarray.push(element);
}
else {
if (filtarray[idxfound].available==false && element.available==true)
filtarray[idxfound].available=true;
}
});
console.log(filtarray);
return filtarray;
}