首页 > 解决方案 > 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'
  }

标签: javascriptreactjs

解决方案


你拿你的users,过滤它,看看名字是否包含在过滤器中。

const onlyMarkAndTom = users.filter(user => filter.name.includes(user.name))

包括附加条件以缩小结果范围

const onlyMarkAndTom = users.filter(user => filter.name.includes(user.name) && ...)

推荐阅读