【问题标题】:lodash filter using forEach?使用 forEach 的 lodash 过滤器?
【发布时间】:2021-09-30 00:36:44
【问题描述】:

无法从深度嵌套的对象数组中过滤掉一些数据。

我需要遍历每一天,然后遍历每个事件并过滤掉所有不包括电子邮件“barry@gmail.com”的参与者的事件。

'18 Sun': [
    {
        name: 'Event 01',
        attendees: [
            {
                name: 'John',
                email: 'john@gmail.com'
            },
            {
                name: 'Barry',
                email: 'barry@gmail.com'
            }
        ]
    }
],
'19 Mon':[
    {
        name: 'Event 02',
        attendees: [
            {
                name: 'John',
                email: 'john@gmail.com'
            }
        ]
    },
    {
        name: 'Event 03',
        attendees: [
            {
                name: 'John',
                email: 'john@gmail.com'
            },
            {
                name: 'Barry',
                email: 'barry@gmail.com'
            }
        ]
    }
]

过滤后的预期(删除事件 02,因为 barry@gmail.com 不存在)

'18 Sun': [
    {
        name: 'Event 01',
        attendees: [
            {
                name: 'John',
                email: 'john@gmail.com'
            },
            {
                name: 'Barry',
                email: 'barry@gmail.com'
            }
        ]
    }
],
    '19 Mon':[
    {
        name: 'Event 03',
        attendees: [
            {
                name: 'John',
                email: 'john@gmail.com'
            },
            {
                name: 'Barry',
                email: 'barry@gmail.com'
            }
        ]
    }
]

我试过这个sn-p

_.forEach(globalEvents, d => {
        _.forEach(d, e => {
            _.filter(e.attendees, p => {
                return p.email === 'barry@gmail.com'
            })
        })
    })

但这只是返回整个未过滤的数组。我想使用 lodash,但没有必要。

【问题讨论】:

    标签: javascript filter lodash


    【解决方案1】:

    试试这个代码,它的工作原理..

    _.forEach(data, d => {
        _.remove(d, e => { 
            return _.some(e.attendees, {email: 'barry@gmail.com'}) != true;
        })
    });
    

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 2019-03-10
      • 2017-06-12
      • 2021-05-09
      • 2016-10-18
      相关资源
      最近更新 更多