【问题标题】:How to compare two arrays of same object and push them in a variable如何比较相同对象的两个数组并将它们推送到变量中
【发布时间】:2020-11-11 23:31:47
【问题描述】:

我在另外两个名为 formKeyValuesform 的对象中有一个对象

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);
  }
});

【问题讨论】:

  • stackoverflow.com/a/1885569/9868549 这就是你要找的东西
  • @QuentinGrisel 但我如何将它们推送到变量中?
  • @QuentinGrisel 我怎样才能将它推送到数组中?你能写在答案部分吗?
  • this.parameter = this.selectedTimeLine.formKeyValues.filter(keyValue => this.selectedTimeLine.form.includes(keyValue.key));
  • @MichaelD 但同样的问题。如何在 this.parameter 中推送所有这些键和值?

标签: angular typescript angular6 angular8


【解决方案1】:

您可以使用includes 来检查一个元素是否包含在数组中,filter 可以根据之前的条件生成一个数组,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);

【讨论】:

    【解决方案2】:

    请找到以下解决方案。 我已经给出了 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);

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 2015-06-01
      • 2016-08-06
      • 2023-01-10
      相关资源
      最近更新 更多