为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Lodash/Javascript 的过滤器获取过滤后的数据

使用 Lodash/Javascript 的过滤器获取过滤后的数据

波斯汪 2023-03-03 13:17:04
我有两个对象数组。const firstObj = [  { Id: "1", Name: "Peter" },  { Id: "2", Name: "John" },  { Id: "12", Name: "jessy" },];const secondObj = [  { Id: "1", Name: "Roa", original: { Id: "1" } },  { Id: "2", Name: "John2", original: { Id: "2" } },  { Id: "5", Name: "Rachel", original: { Id: "3" } },];在这里,我试图根据Id过滤数据并返回过滤后的数据firstObj所以,这里的 firstObj 有一个条目 { Id: "12", Name: "jessy" }this object,其 Id 与 so 不匹配secondObj.original.Id,firstObj将具有给定的结果。我试过的是firstObj.filter(  firstObj,  secondObj.map((second) => {    return firstObj.Id === second.original.Id;  }),);但这不起作用。任何人都可以在这里帮助我,使用 Lodash 或 Js 过滤器。output would be -> [{"Id": "3", "Name": "jessy"}]
查看完整描述

3 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

这是你想要的?


const firstObj = [

  { Id: "1", Name: "Peter" },

  { Id: "2", Name: "John" },

  { Id: "12", Name: "jessy" },

];


const secondObj = [

  { Id: "1", Name: "Roa", original: { Id: "1" } },

  { Id: "2", Name: "John2", original: { Id: "2" } },

  { Id: "1", Name: "Rachel", original: { Id: "3" } },

];



const result = lodash.filter(firstObj, (firstItem) => {

  return !lodash.some(secondObj, (secondItem) => {

    return firstItem.Id === secondItem.original.Id;

  });

});

直播:https://stackblitz.com/edit/js-addy5t?file =index.js


查看完整回答
反对 回复 2023-03-03
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

为什么要为此使用 loadash。您可以使用本机过滤器并查找功能来实现此目的

const filter = firstObj.filter(item => {
     return secondObj.find(itm => itm.original.id === item.id)
});


查看完整回答
反对 回复 2023-03-03
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

Array.filter()您可以使用和的本地方法Array.some()来实现所需的输出。

请检查下面的工作代码片段

ES6

const firstObj = [

  { Id: "1", Name: "Peter" },

  { Id: "2", Name: "John" },

  { Id: "12", Name: "jessy" },

],

secondObj = [

  { Id: "1", Name: "Roa", original: { Id: "1" } },

  { Id: "2", Name: "John2", original: { Id: "2" } },

  { Id: "1", Name: "Rachel", original: { Id: "3" } },

];


let result = firstObj.filter(({Id})=> !secondObj.some(item => item.original.Id === Id));


console.log(result)


查看完整回答
反对 回复 2023-03-03
  • 3 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信