javascript - 使用 forEach 的 lodash 过滤器?
问题描述
无法从深度嵌套的对象数组中过滤掉一些数据。
我需要遍历每一天,然后遍历每个事件并过滤掉所有不包括电子邮件“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'
}
]
}
]
我试过这个片段
_.forEach(globalEvents, d => {
_.forEach(d, e => {
_.filter(e.attendees, p => {
return p.email === 'barry@gmail.com'
})
})
})
但这只是返回整个未过滤的数组。我想使用 lodash,但没有必要。
解决方案
试试这个代码它的作品..
_.forEach(data, d => {
_.remove(d, e => {
return _.some(e.attendees, {email: 'barry@gmail.com'}) != true;
})
});
推荐阅读
- lua - 我在 Roblox Lua 脚本中遇到问题。我想编写脚本,以便在死亡时保存库存。有小费吗?
- c# - 从未使用过 Resharper 方法
- python - HTTP POST使用套接字 - python
- reactjs - 在哪里存储 Auth0 域和客户端 ID?
- java - 以编程方式将 PEM 证书导入 Java KeyStore
- git - 为什么 Gitolite 在克隆时给出“无效的仓库名称”?
- perl - 为什么不能 Net::SSH::Expect 登录?
- api - 如何从 Jenkins API 设置“更改”和“开始于”?
- java - java exec() 的输出语言字符串
- javascript - 在 ajax 调用运行时使用 setTimeInterval 延迟函数