我在底部有一个这样的数据结构..我需要从数组中删除totype.id === 'REG'
以及对象属性budgt
的所有实例。
我已经使用以下代码完成了部分工作,并打算进行另一次迭代以从所有剩余的budgt
中删除totype
,但这似乎并不是最好的方法。
_.each(data, function (d, i) { // iterate over each "org"
_.each(d.occs, function (occ) { // iterate over each "occ" in current "org"
return _.remove(occ.totypes, function (totype) { // remove the totype REG from "totypes"
return totype.id === 'REG'
})
// how do i remove the "budgt" from each remaining totype
})
})
样本数据
var data = [
{
org: "org1",
occs: [
{
name: "occ1",
totypes: [
{
id: "REG",
act: 1,
auth: 2,
budgt: 3
},
{
id: "PRV",
act: 1,
auth: 2,
budgt: 3
}
]
},
{
name: "occ2",
totypes: [
{
id: "REG",
act: 1,
auth: 2,
budgt: 3
},
{
id: "PRV",
act: 1,
auth: 2,
budgt: 3
}
]
},
},
{
org: "org2",
occs: [
{
name: "occ1",
totypes: [
{
id: "REG",
act: 1,
auth: 2,
budgt: 3
},
{
id: "PRV",
act: 1,
auth: 2,
budgt: 3
}
]
},
{
name: "occ2",
totypes: [
{
id: "REG",
act: 1,
auth: 2,
budgt: 3
},
{
id: "PRV",
act: 1,
auth: 2,
budgt: 3
}
]
}
]
}
]
最佳答案
没有办法用Lodash描述的方式“深度删除”。它没有像MongoDB这样的查询结构。