按值和对象数组中的额外过滤器的唯一对象
unique objects by value and extra filter within an array of objects
我正在尝试获取对象数组中的唯一对象。假设对象如下所示。
values = [
{ id: 10, available: true },
{ id: 10, available: false },
{ id: 11, available: true },
{ id: 12, available: false }
];
唯一对象应 return 如下所示:如果重复对象包含 available:true
需要 available:true
result = [
{ id: 10, available: true },
{ id: 11, available: true },
{ id: 12, available: false }
];
您的问题的解决方案..
函数 myfilter()
returns 具有唯一 id
值的数组,如果存在 available: true
则优先
var values = [
{ id: 10, available: true },
{ id: 10, available: false },
{ id: 11, available: true },
{ 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;
}
我正在尝试获取对象数组中的唯一对象。假设对象如下所示。
values = [
{ id: 10, available: true },
{ id: 10, available: false },
{ id: 11, available: true },
{ id: 12, available: false }
];
唯一对象应 return 如下所示:如果重复对象包含 available:true
需要 available:true
result = [
{ id: 10, available: true },
{ id: 11, available: true },
{ id: 12, available: false }
];
您的问题的解决方案..
函数 myfilter()
returns 具有唯一 id
值的数组,如果存在 available: true
则优先
var values = [
{ id: 10, available: true },
{ id: 10, available: false },
{ id: 11, available: true },
{ 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;
}