我在底部有一个这样的数据结构..我需要从数组中删除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这样的查询结构。

09-18 06:15