Javascript 使用条件筛选并比较typescript中的两个数组
如何使用另一个Javascript 使用条件筛选并比较typescript中的两个数组,javascript,angular,typescript,Javascript,Angular,Typescript,如何使用另一个数组过滤某些属性,如果它与条件匹配,它将返回另一个属性,例如: Array1 = [{offenceCode: 'JLN14', offenceDesc:'Speeding'}] Array2 = [{id:0, offenceCode: 'JLN14'}, {id:1, offenceCode: 'JLN13'}] 首先,我得到Array2并将属性offenceCode与Array1进行比较,如果它得到相同的属性,Array1应该返回OffenceDesc 这就是我曾经尝试过
数组过滤某些属性,如果它与条件匹配,它将返回另一个属性,例如:
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
}
}
目前我不知道如何解决这个问题,这是我的,我可以使用任何关于如何解决这个问题的建议,如果有更好的方法,谢谢你可以使用它
const matchIndex = this.demo.findIndex(x => x.offenceCode === this.offenceCode);
if(matchIndex !== -1) {
return this.demo[matchIndex].offenceDesc;
}
return undefined;
请注意,如果未找到匹配项,findIndex
将返回-1。看起来您正在查找:
ngOnInit(){
let Array1 = [{offenceCode: 'JLN14', offenceDesc:'Speeding'}]
let Array2 = [{id:0, offenceCode: 'JLN14'}, {id:1, offenceCode: 'JLN13'}]
let object = Array1.filter(x => x.offenceCode == Array2.filter(y => y.offenceCode == x.offenceCode)[0].offenceCode)[0]
return object ? object.offenceDesc ? null
}
offenceCode: string[];
ngOnInit() {
this.offenceCode = this.items.map(x => x.offenceCode1);
this.demo.forEach(x => {
this.offenceCode
.filter(e => e === x.offenceCode)
.forEach(e => console.log(x.offenceDesc));
});
}
进行了以下编辑:
您应该将offenceCode
定义为字符串[]
现在,您可以在demo
数组上循环,并对前一行的offenceCode执行一个过滤器。满足的任何条件现在都将记录到控制台(您可以根据需要进行更改)
++你的stackblitz包含很多文件。请创建一个应用程序。如果是,将更新我的stackblitz@SudarshanaDayananda如果offenceCode的条件相同,我只需要返回offenceDesc。您还可以添加几个您期望的输出示例(使用不同的输入)?我的stackblitz最小,@NicholasK