微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在尝试获取一组对象中的唯一对象。假设对象如下所示。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。