【问题标题】:Get objects from arrays and push to new array [duplicate]从数组中获取对象并推送到新数组[重复]
【发布时间】:2020-09-05 07:50:08
【问题描述】:

我有一个按钮,它创建一个带有类似对象的数组

[{field: field1, operator: operator1, value: 10}]

当我再次单击该按钮时,它将再次创建一个新数组,如

[{field: field2, operator: operator2, value: 20}]

当我尝试将这些推入新数组时,它正在嵌套

[Array(1), Array(1)]

但我希望新数组看起来像

[{field: field1, operator: operator1, value: 10}, {field: field2, operator: operator2, value: 20}]

我的代码

public filterChange(state): void {
    this.filters.push( state.filters );
    console.log(this.filters);
}

每次点击按钮时,“filterChange”都会调用,“state”会给出过滤器数组,生成新的过滤器值。请建议。谢谢。

【问题讨论】:

  • 为什么按钮首先创建具有单个元素的数组?为什么不只是对象?

标签: javascript


【解决方案1】:

您可以使用扩展语法。

public filterChange(state): void { this.filters.push( ...state.filters ); console.log(this.filters); }

【讨论】:

    【解决方案2】:

    尝试使用spread 语法。扩展运算符将从数组中获取一个元素:

    this.filters.push( ...state.filters );
    console.log(this.filters);
    

    一个例子:

    let arr1 = [],
    arr2 = [{
        user_id: 3, project_name: 'Project A'
    }]
    
    arr1.push(...arr2);
    console.log(arr1)

    【讨论】:

      猜你喜欢
      • 2023-02-01
      • 2019-06-28
      • 1970-01-01
      • 2022-01-18
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      相关资源
      最近更新 更多