从数组中获取对象并推送到新数组[重复]

Posted

技术标签:

【中文标题】从数组中获取对象并推送到新数组[重复]【英文标题】: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”会给出过滤器数组,生成新的过滤器值。请建议。谢谢。

【问题讨论】:

为什么按钮首先创建具有单个元素的数组?为什么不只是对象? 【参考方案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)

【讨论】:

以上是关于从数组中获取对象并推送到新数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何设置状态并推送到数组?

如何在 Vue 中求和并推送到匹配的对象

从对象数组中获取新数组[重复]

删除排序数组中的重复项并将它们推送到新数组中

$emit 对象到父组件,并推送到数组。数组中的对象仍然是反应性的,为啥?

将字符串转换为具有重复键的对象到数组