如何比较同一对象的两个数组并将它们推入变量
How to compare two arrays of same object and push them in a variable
我在另外两个名为 formKeyValues
和 form
的对象中有一个对象
formKeyValues
形式
我只想将 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);
}
});
请找到以下解决方案。
我已经给出了 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);
您可以使用 includes
to check if an element is contained in an array, filter
to produce an array based on the previous condition, and map
将生成的数组转换为您想要的格式。
尝试以下方法
this.parameter = this.selectedTimeLine.formKeyValues
.filter(keyValue => this.selectedTimeLine.form.formKeys.includes(keyValue.key))
.map(keyValue => 'd[/data/'+this.selectedTimeLine.form.formId+'/'+keyValue.key+']='+keyValue.value);
我在另外两个名为 formKeyValues
和 form
formKeyValues
形式
我只想将 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);
}
});
请找到以下解决方案。 我已经给出了 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);
您可以使用 includes
to check if an element is contained in an array, filter
to produce an array based on the previous condition, and map
将生成的数组转换为您想要的格式。
尝试以下方法
this.parameter = this.selectedTimeLine.formKeyValues
.filter(keyValue => this.selectedTimeLine.form.formKeys.includes(keyValue.key))
.map(keyValue => 'd[/data/'+this.selectedTimeLine.form.formId+'/'+keyValue.key+']='+keyValue.value);