javascript - 过滤并比较打字稿中的两个数组与条件
问题描述
如何用另一个过滤某些属性,array
如果它符合条件,它将返回另一个属性,例如:
Array1 = [{offenceCode: 'JLN14', offenceDesc:'Speeding'}]
Array2 = [{id:0, offenceCode: 'JLN14'}, {id:1, offenceCode: 'JLN13'}]
首先我得到Array2
并将属性offenceCode
与进行比较Array1
,如果它具有相同的属性,Array1
则应该返回OffenceDesc
这是我尝试过的:
demo = [
{
offenceCode: 'JLN14',
offenceType: '7',
offenceDesc: 'emergency lane abuse'
},
{
offenceCode: 'BRG04',
offenceType: '8',
offenceDesc: 'speeding'
},
{
offenceCode: 'CRG04',
offenceType: '9',
offenceDesc: 'emergency lane abuse'
}
];
offenceCode: any;
ngOnInit() {
this.offenceCode = this.items.map(x => x.offenceCode1);
console.log(this.offenceCode);
if(this.demo.forEach(x => x.offenceCode === this.offenceCode)) {
// return offenceDesc
}
}
目前我不知道如何解决这个问题,这是我的stackblitz 演示,我可以使用任何关于如何解决这个问题的建议,如果有更好的做法,谢谢
解决方案
您可以使用Array.prototype.findIndex来执行此操作。
const matchIndex = this.demo.findIndex(x => x.offenceCode === this.offenceCode);
if(matchIndex !== -1) {
return this.demo[matchIndex].offenceDesc;
}
return undefined;
请注意,findIndex
如果没有找到匹配项,它将返回 -1。
推荐阅读
- gremlin - 如何使用 SSL 证书在 CloudFoundry 上使用 Gremlin.NET 连接到 Janusgraph
- javascript - JavaScript 异步函数问题
- r - 计算具有x个“条件”的人在R中具有相同条件的概率?
- android - Firebase 存储 - 运行 android 应用程序的问题
- node.js - 在路由别名上获取 404
- java - Spring Boot Admin 2.0.0:客户端无法连接到安全服务器
- node.js - elementIsNotVisible 在 Selenium 中抛出 noSuchElementError
- url - 生成 mpd 视频的 URL
- c# - 将重复数据与列表中的条件合并
- docker - 如何增加nvidia-docker初始化的超时限制