如何比较2个API数组字段,并使用angular rxjs打印其中一个API字段



1st api包含2个带字段的数组premiumFrequency-代码-标签

policyStatus-代码-标签

第二个api还包含2个字段

-policyFrequency-状态

  1. if(policyFrequency==premiumFrequency.code(=>打印:premiumFrequency.label
  2. if(status==policyStatus.code(=>打印:policyStatus.label

我已经使用forJoin在结果中附加了这两个api。可以作为结果访问第一个api。policys结果是第二个api。policyStatus

如何比较和显示模板文件中的标签?

●JSON数据第一个api:"数据":{"resultMap":"premiumFrequency":[{"id":"YEARLY";,"代码":"YEARLY";,"标签":"每年";},{"id":"不可用";,"代码":"不可用";,"标签":"不可用";},{"id":"PREMIUM";,"代码":"PREMIUM";,"标签":"高级">
},],"policyStatus":[{"id":"建议书";,"代码":"建议书";,"标签":"建议书";},{"id":"IN_SUSPENSE";,"代码":"IN_SUSPENSE";,"标签":"在悬念中";}
]

第二个api:"resultList":[{"policyFrequency":"MONTHLY";,"状态":"IN_ FORCE";},]

有几种方法可以解决这个问题。由于您收到了来自两个独立api调用的响应,并且决定使用forkJoin来组合它们,因此我们可以在类的开头创建两个空数组。在订阅forkJoined可观察器时,我们在数组上使用find/some方法,如下所示:

apiOne.find(value => apiTwo.some(res => res.policyFrequency === value.code)));

我们在另一个响应上做同样的事情,而不是看哪里:

apiOne.find(value => apiTwo.some(res => res.status === value.code)));

然而,您的API响应都不匹配,所以我创建了一个stackblitz项目并更改了一些值,这样您就可以看到这是如何工作的。

https://stackblitz.com/edit/angular-ivy-hfuu6w?file=src%2Fapp%2Fapp.component.ts

相关内容

  • 没有找到相关文章

最新更新