使用另一个对象数组按 id 过滤 JavaScript 中的对象数组

Ива*_*айн 0 javascript lodash

我有 2 个带有 id 的对象数组:

    const oldOffers = [
  {
    _id: "1"
  },
  {
    _id: "2"
  },
  {
    _id: "3"
  }
];

const activeOffers = [
  {
    _id: "1"
  },
  {
    _id: "5"
  }
];
Run Code Online (Sandbox Code Playgroud)

我需要一个新数组,其中包含 oldOffers 中存在但 activeOffers 中不存在的对象;所以输出将是:

filteredOffers = [{
        _id: "2"
      },
      {
        _id: "3"
      }
    ];
Run Code Online (Sandbox Code Playgroud)

我使用 2 个循环解决了这个问题,但方式很糟糕,有人有任何优雅的解决方案,也使用 lodash 吗?

Jer*_*lle 5

为什么你需要一个图书馆呢?它可以在.filter一行.find中完成:)

const oldOffers = [
  {_id: "1"},
  {_id: "2"},
  {_id: "3"}
];

const activeOffers = [
  {_id: "1"},
  {_id: "5"}
];

const filtered = oldOffers.filter( obj1 => !activeOffers.find(obj2 => obj1._id===obj2._id));

console.log(filtered)
Run Code Online (Sandbox Code Playgroud)