Angular 通过比较两个列表获取值
需要比较两个ID,获取SympleValue并推入SymplesformarrayAngular 通过比较两个列表获取值,angular,typescript,angular8,Angular,Typescript,Angular8,需要比较两个ID,获取SympleValue并推入Symplesformarray "partcipantData": [ { "symptomId": 8651, "symptomValue": "N" }, { "symptomId": 8646, "symptomValue": "N&quo
"partcipantData": [
{
"symptomId": 8651,
"symptomValue": "N"
},
{
"symptomId": 8646,
"symptomValue": "N"
},
{
"symptomId": 8642,
"symptomValue": "N"
}
]
var symptomsParams = [
{
"id": 8651,
"value": "Abdominal pain"
},
{
"id": 8646,
"value": "Chest pain"
},
{
"id": 8642,
"value": "Cough"
}
]
this.symptomsParams.forEach(childObj =>{
let val = this.partcipantData.filter(obj => obj.symptomId == childObj.id)
this.symptomsFormArray.push(new FormControl(val.symptomValue))
});
需要比较两个ID,获取SympleValue并推入Symplesformarray
"partcipantData": [
{
"symptomId": 8651,
"symptomValue": "N"
},
{
"symptomId": 8646,
"symptomValue": "N"
},
{
"symptomId": 8642,
"symptomValue": "N"
}
]
var symptomsParams = [
{
"id": 8651,
"value": "Abdominal pain"
},
{
"id": 8646,
"value": "Chest pain"
},
{
"id": 8642,
"value": "Cough"
}
]
this.symptomsParams.forEach(childObj =>{
let val = this.partcipantData.filter(obj => obj.symptomId == childObj.id)
this.symptomsFormArray.push(new FormControl(val.symptomValue))
});
在这里,val值总是返回未定义的值,有没有其他方法可以实现这一点?假设您想从
SymplesParams
中筛选参与者数据,只需使用数组映射和筛选器
const-sparams=[
{
“症状ID”:8651,
“值”:“N”
},
{
“症状ID”:8646,
“值”:“N”
},
{
“症状ID”:8642,
“值”:“N”
}
];
const partcipantData=[
{
“id”:8651,
“价值”:“腹痛”
},
{
“id”:8646,
“价值”:“胸痛”
},
{
“id”:8642,
“值”:“咳嗽”
}
];
const sympleId=sympleSparams.map(s=>s.sympleId);
const filteredSymptomValues=partcipantData
.filter(p=>symptomIds.includes(p.id))
.map(p=>p.value);
log(filteredsymptomvalue)代码>索引是否正确?它会导致错误的插入吗。因为它是分开做的。先取后取pushing@user630209它将按照partcipantData
的顺序插入。这两个数组的顺序不一定相同。我没有确切地告诉您,首先它将根据症状ID SYMBOLSPARAMS筛选参与者数据,然后它将形成值数组。使用此值数组,您可以创建表单数组,array.filter将负责索引@user630209