我有 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 吗?
为什么你需要一个图书馆呢?它可以在.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)