Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 通过比较两个列表获取值_Angular_Typescript_Angular8 - Fatal编程技术网

Angular 通过比较两个列表获取值

Angular 通过比较两个列表获取值,angular,typescript,angular8,Angular,Typescript,Angular8,需要比较两个ID,获取SympleValue并推入Symplesformarray "partcipantData": [ { "symptomId": 8651, "symptomValue": "N" }, { "symptomId": 8646, "symptomValue": "N&quo

需要比较两个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))
              });
              
需要比较两个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