在多个条件下从javascript中的嵌套对象数组中删除数组

在多个条件下从javascript中的嵌套对象数组中删除数组,javascript,arrays,Javascript,Arrays,我想删除id为41且day.id为2的版本。。因此,我的数组应该如下所示: days[ { dt:2017-06-19T00:00:00.000Z, id:1, releases:[], }, { dt:2017-06-20T00:00:00.000Z, id:2, releases:[{ id:41, programId:2,

我想删除id为41且day.id为2的版本。。因此,我的数组应该如下所示:

days[
    {
      dt:2017-06-19T00:00:00.000Z,
      id:1,
      releases:[],
    },

    {
      dt:2017-06-20T00:00:00.000Z,
      id:2,
      releases:[{
               id:41,
               programId:2,
               teamId:116,
            }]
    },
    {
      dt:2017-06-21T00:00:00.000Z,
      id:3,
      releases:[]
    },
]
我已尝试筛选:

days[
    {
      dt:2017-06-19T00:00:00.000Z,
      id:1,
      releases:[],
    },

    {
      dt:2017-06-20T00:00:00.000Z,
      id:2,
      releases:[]
    },
    {
      dt:2017-06-21T00:00:00.000Z,
      id:3,
      releases:[]
    },
]

然后获取索引并从中删除,但我知道有一种更简单的方法可以做到这一点。。有人能帮忙吗?嵌套的releases对象数组中可能有多个版本,因此我需要通过查看版本id和日期id来明确删除

您可以迭代
并仅过滤具有所需
id
的发行版

var-days=[{dt:'2017-06-19T00:00:00.000Z',id:1,发布日期:[],},{dt:'2017-06-20T00:00:00.000Z',id:2,发布日期:[{id:41,programId:2,teamId:116,}},{dt 2017-06-21T00:00:00.000Z',id:3,发布日期:[];
天。forEach(函数(天){
如果(day.id==2){
day.releases=day.releases.filter(函数(发布){
返回release.id!==41;
});
}
});
控制台日志(天)

.as控制台包装{max height:100%!important;top:0;}
您希望使用
.map
javascript原型函数来实现这一点,如下所示-

var天数=[
{
dt:'2017-06-19T00:00:00.000Z',
id:1,
发布:[],
},
{
dt:'2017-06-20T00:00:00.000Z',
id:2,
发布:[{
身份证号码:41,
节目编号:2,
组号:116
}]
},
{
dt:'2017-06-21T00:00:00.000Z',
id:3,
发布:[]
}
];
days=days.map(函数(对象){
if(object.id==2){
object.releases=object.releases.filter(函数(项){
返回项目id!==41
});
}
返回对象;
});

控制台日志(天)谢谢!我希望更改当前数组。然而,代码是有效的!当然是我需要的。谢谢
var found = days.filter(function(day){
           return day.releases.filter(function(r){
                          return r.id===41
            });
 });