javascript - typescript:如何从 2 个不同的对象集中获取具有相同属性值但不同键的对象

标签 javascript typescript javascript-objects ngrx keyvaluepair

我必须从状态数据表单中获取一组 Json

objetSet1:
  {id: 12, name: 'Foo Bar', email: 'foo@bar.com'},
  {id: 23, name: 'Bar Foo', email: 'bar@foo.com'},
  {id: 61, name: 'Barbell', email: 'barbell@mail.com'},
  {id: 45, name: 'Joe Ocean', email: 'joe@ocean.com'}

objectSet2:
  {ObjectId:15, name: 'someone', email: 'someone@mail.com'},
  {ObjectId: 23, name: 'sometwo', email: 'sometwo@mail.com'},
  {ObjectId: 72, name: 'seven ', email: 'seven@mail.com'},
  {ObjectId: 23, name: 'five ', email: 'five@mail.com'}

我实际上正在寻找一种方法来使这个表达式变得动态

objectSet2 = objectSet2.filter(object => object.ObjectId === '23')

不是23个静态值,而是objectSet1对应的值

结果应包含 ID 出现在第一个对象集中的项目

预期输出:

objectSet2:
      {ObjectId: 23, name: 'sometwo', email: 'sometwo@mail.com'},
      {ObjectId: 23, name: 'five ', email: 'five@mail.com'}

最佳答案

Yy 很接近,只需要添加一个新的过滤器,如下所示:

objetSet1 = [{id: 12, name: 'Foo Bar', email: 'foo@bar.com'},
  {id: 23, name: 'Bar Foo', email: 'bar@foo.com'},
  {id: 61, name: 'Barbell', email: 'barbell@mail.com'},
  {id: 45, name: 'Joe Ocean', email: 'joe@ocean.com'}];
  
  objectSet2 = [{ObjectId:15, name: 'someone', email: 'someone@mail.com'},
  {ObjectId: 23, name: 'sometwo', email: 'sometwo@mail.com'},
  {ObjectId: 72, name: 'seven ', email: 'seven@mail.com'},
  {ObjectId: 23, name: 'five ', email: 'five@mail.com'}];
  
 var result = objectSet2.filter((obj2)=>objetSet1.filter((obj1)=>obj1.id==obj2.ObjectId).length>0)
 
 console.log(result);

请注意obj1.id==obj2.ObjectId比较。当内部过滤器上的正匹配计数大于零时,它返回 true。那么这就是外部过滤器的答案。

关于javascript - typescript:如何从 2 个不同的对象集中获取具有相同属性值但不同键的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60439450/

相关文章:

javascript - 使用 CasperJS 选择下拉选项

javascript - 下载不同名称的html页面

typescript - Angular2 @ TypeScript error rxjs/Subject::filtering when user stops typing

javascript - 如何通过事件增加/减少对象属性值?

Javascript - 操纵硬币翻转(正面朝上)

reactjs - 为什么我必须在 React 中使用 "require"而不是 "import from"作为图像?

typescript - AWS-Cognito : Is it possible to edit the User Pool name after creating the User Pool?

Javascript 创建对象数组

我刚创建的对象中缺少 JavaScript 项

javascript - Facebook 社交插件仅使用 JQuery 和 .load() 在自定义 Lightbox 中加载一次;