首页 > 解决方案 > 如何比较相同对象的两个数组并将它们推送到变量中

问题描述

formKeyValues我在另外两个名为和的对象中有一个对象form

表单键值

在此处输入图像描述

形式

在此处输入图像描述

我只想formKeyValues从新数组中推送键和值parameter-键在form.formKeys-

我试过这个,但它不工作。

this.formKeyValues=this.selectedTimeLine.formKeyValues;
this.parameter=[];
this.formKeyValues.forEach((para)=>{
  if(para.key==this.selectedTimeLine.form.formKeys){
    this.parameter.push('d[/data/'+this.selectedTimeLine.form.formId+'/'+para.key+']='+para.value);
  }
});

标签: angulartypescriptangular6angular8

解决方案


请找到以下解决方案。我已经给出了 js 解决方案,所以它可以在这里运行。您可以通过将 var 替换为 const 来将其转换为 angular。

var formKeyValues = [{
    key: 'key 1',
    value: 1
  },
  {
    key: 'key 2',
    value: 2
  },
  {
    key: 'key 3',
    value: 3
  },
  {
    key: 'key 4',
    value: 4
  },
  {
    key: 'key 5',
    value: 5
  },
];

var form = {
  formId: 1,
  formKeys: ['key 2', 'key 4', 'key 5']
};

var parameters = this.formKeyValues.filter(x => this.form.formKeys.indexOf(x.key) > -1).map(para => 'd[/data/'+this.form.formId+'/'+para.key+']='+para.value);
console.log(this.parameters);


推荐阅读