通过比较两个列表获取值
Fetch value by comparing two list
需要比较两个 id,获取 symptomValue 并推入 symptomsFormArray。
"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"
}
]
需要比较两个 id,获取 symptomValue 并推入 symptomsFormArray。
this.symptomsParams.forEach(childObj =>{
let val = this.partcipantData.filter(obj => obj.symptomId == childObj.id)
this.symptomsFormArray.push(new FormControl(val.symptomValue))
});
这里的 val 值总是 return 未定义,有没有其他方法可以实现这个?
假设您想从 symptomsParams
中筛选参与者数据,您只需使用数组映射和筛选器
const symptomsParams = [
{
"symptomId": 8651,
"symptomValue": "N"
},
{
"symptomId": 8646,
"symptomValue": "N"
},
{
"symptomId": 8642,
"symptomValue": "N"
}
];
const partcipantData = [
{
"id": 8651,
"value": "Abdominal pain"
},
{
"id": 8646,
"value": "Chest pain"
},
{
"id": 8642,
"value": "Cough"
}
];
const symptomIds = symptomsParams.map(s => s.symptomId);
const filteredSymptomValues = partcipantData
.filter(p => symptomIds.includes(p.id))
.map(p => p.value);
console.log(filteredSymptomValues);
然后将症状推送到数组
filteredSymptomValues.forEach(value => this.symptomsFormArray.push(new FormControl(value)))
需要比较两个 id,获取 symptomValue 并推入 symptomsFormArray。
"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"
}
]
需要比较两个 id,获取 symptomValue 并推入 symptomsFormArray。
this.symptomsParams.forEach(childObj =>{
let val = this.partcipantData.filter(obj => obj.symptomId == childObj.id)
this.symptomsFormArray.push(new FormControl(val.symptomValue))
});
这里的 val 值总是 return 未定义,有没有其他方法可以实现这个?
假设您想从 symptomsParams
中筛选参与者数据,您只需使用数组映射和筛选器
const symptomsParams = [
{
"symptomId": 8651,
"symptomValue": "N"
},
{
"symptomId": 8646,
"symptomValue": "N"
},
{
"symptomId": 8642,
"symptomValue": "N"
}
];
const partcipantData = [
{
"id": 8651,
"value": "Abdominal pain"
},
{
"id": 8646,
"value": "Chest pain"
},
{
"id": 8642,
"value": "Cough"
}
];
const symptomIds = symptomsParams.map(s => s.symptomId);
const filteredSymptomValues = partcipantData
.filter(p => symptomIds.includes(p.id))
.map(p => p.value);
console.log(filteredSymptomValues);
然后将症状推送到数组
filteredSymptomValues.forEach(value => this.symptomsFormArray.push(new FormControl(value)))