按值和对象数组中的额外过滤器的唯一对象

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;
}