首页 > 解决方案 > javascript过滤两个对象数组

问题描述

我有两个对象数组,过滤器和用户。我想遍历每个用户并检查他的名字是否与过滤器匹配。

var filter = [
{name: 'John'},
{name:'Tom'}
]
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'
  }
];

我试过这个,但没有运气。

users= users.filter(function(item) {
  filter.forEach(function (key) {
    if (item.name=== undefined || item.name == filter[key.name])
      return false;
  })
  return true;
});
console.log(users)

我正在寻找类似的结果。

[
  {
    name: 'John',
    email: 'johnson@mail.com',
    age: 25,
    address: 'USA'
  },
  {
    name: 'Tom',
    email: 'tom@mail.com',
    age: 35,
    address: 'England'
  }
]

标签: javascriptjqueryfilter

解决方案


推荐阅读