javascript - javascript如何过滤多个条件的数组
问题描述
这是过滤器:
var filter = {
address: ['England'],
name: ['Mark', 'Tom'] // Mark or Tom in this case
};
var users = [{
name: 'John',
email: 'johnson@mail.com',
age: 25,
address: 'USA'
},
{
name: 'Tom',
email: 'tom@mail.com',
age: 35,
address: 'England'
},
{
name: 'Mark',
email: 'mark@mail.com',
age: 28,
address: 'England'
}
];
过滤后的结果应该是
{
name: 'Tom',
email: 'tom@mail.com',
age: 35,
address: 'England'
},
{
name: 'Mark',
email: 'mark@mail.com',
age: 28,
address: 'England'
}
解决方案
你拿你的users
,过滤它,看看名字是否包含在过滤器中。
const onlyMarkAndTom = users.filter(user => filter.name.includes(user.name))
包括附加条件以缩小结果范围
const onlyMarkAndTom = users.filter(user => filter.name.includes(user.name) && ...)
推荐阅读
- javascript - AngularJS ng-init 未全局初始化变量
- python - 如何制作带有登录输入、输入区域和提交按钮的 tkinter 程序
- python-xarray - 从数据集中计算新变量并使用新维度保存它们
- database - PostgreSQL:聊天对话的数据库结构
- android - EditText drawableStart 在文本更改时消失
- git - git ls-remote 的“模式”的定义是什么?
- reactjs - 在 React 中动态启用/禁用 react-bootstrap 选项卡
- html - 将 HTML 符号代码显示为代码,而不是符号
- java - 我们如何在java中使用twilio api获取whatsapp消息的已读回执状态?
- reactjs - 反应路由器竞争条件