如何使用Lodash对JSON数据进行子级过滤

阿布

我有下面的JSON数据集

[
  {
    "campaignId": 111,
    "campaignCategory": "Diabetes",
    "result": [
      {
        "campaignType": 1,
        "name": "tes1"
      },
      {
        "campaignType": 1,
        "name": "test22"
      },
      {
        "campaignType": 3,
        "name": "test33"
      }
    ]
  },
  {
    "campaignId": 222,
    "campaignCategory": "Orthopedic",
    "result": [
      {
        "campaignType": 1,
        "name": "Orthopedic"
      }
    ]
  },
  {
    "campaignId": 333,
    "campaignCategory": "Cardiology",
    "result": [
      {
        "campaignType": 3,
        "name": "Cardiology"
      },
      {
        "campaignType": 1,
        "name": "Cardiology 123"
      }
    ]
  }
]

我已经厌倦了下面的过滤器,但是没有返回想要的数据。

_.filter(summary, function (data) {
 return (post, _.filter(data.result, {'campaignType': 3}));

我想在应用过滤后得到以下数据。

[{ campaignId: 111, campaignCategory: 'Diabetes', result: [{
  campaignType: 3, name: 'test33'
}] }, 
{ campaignId: 333, campaignCategory: 'Cardiology', result: [{
  campaignType: 3, name: 'Cardiology'
}] } ];  

这里所有节点都显示有campaignType: 3Lodash或基于纯Java脚本的解决方案都可以使用。

妮娜·斯科茨(Nina Scholz)

result如果存在ayn filter元素,则可以预先过滤内部对象并获取外部对象。然后以新结果获取一个新对象。

var data = [{ campaignId: 111, campaignCategory: 'Diabetes', result: [{ campaignType: 1, name: 'tes1' }, { campaignType: 1, name: 'test22' }, { campaignType: 3, name: 'test33' }] }, { campaignId: 222, campaignCategory: 'Orthopedic', result: [{ campaignType: 1, name: 'Orthopedic' }] }, { campaignId: 333, campaignCategory: 'Cardiology', result: [{ campaignType: 3, name: 'Cardiology' }, { campaignType: 1, name: 'Cardiology 123' }] }],
    result = data.reduce((r, o) => {
        var result = o.result.filter(({ campaignType}) => campaignType === 1);
        if (result.length) r.push(Object.assign({}, o, { result }));
        return r;
    }, []);
    
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章