在多个条件下从javascript中的嵌套对象数组中删除数组
我想删除id为41且day.id为2的版本。。因此,我的数组应该如下所示:在多个条件下从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,
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
});
});