我想要实现的是,如果fleetArray中的fleet_id存在于om对象中,那么我想从om对象中删除它。 有没有更好的方法呢?
var newObject= {}
newObject.data=[]
var om = {
"message": "Successful",
"status": 200,
"data": [{
"tag": "",
"array": [
{
"type": 0,
"fleet_id": 23508,
},
{
"type": 10,
"fleet_id": 235089,
}
]
}, {
"tag": "",
"array": [{
"type": 320,
"fleet_id": 23218,
}]
}]
}
var fleetArray = ["23218","23508"];
om.data.forEach(function(api){
//console.log(api)
(api.array).forEach(function(data1){
fleetArray.forEach(function(fleet){
if(fleet==data1.fleet_id){
newObject.data.push(data1)
}
})
})
})
console.log(newObject)
答案 0 :(得分:1)
您可以使用地图和过滤器
om.data = om.data.map(e => {
e.array = e.array.filter(a => ! fleetArray.includes("" + a.fleet_id))
return e;
});
var om = {"message": "Successful","status": 200,"data": [{"tag": "","array": [{"type": 0,"fleet_id": 23508,},{"type": 10,"fleet_id": 235089,}]}, {"tag": "","array": [{"type": 320,"fleet_id": 23218,}]}]}
var fleetArray = ["23218","23508"];
om.data = om.data.map(e => {
e.array = e.array.filter(a => ! fleetArray.includes("" + a.fleet_id))
return e;
});
console.log(om);