【问题标题】:Push adds array to array instead of elements [duplicate]Push将数组添加到数组而不是元素[重复]
【发布时间】:2021-03-14 14:23:46
【问题描述】:

我需要从 API 获取一些数据并将其存储在数组中。如果我将值设置为通过 = 分配,则返回的数据将根据需要显示。但如果我使用 push 添加元素,它们将作为另一个数组添加。

第一次分配this.elements = response.data后数组的控制台日志

Proxy {0: {…}, 1: {…}, 2: {…}}
[[Handler]]: Object
[[Target]]: Array(3)
0: {ID: 40, created_at: "2021-03-13T22:15:09.769066+03:00", updated_at: "2021-03-13T22:15:09.769066+03:00", DeletedAt: null, user_id: 19, …}
1: {ID: 39, created_at: "2021-03-13T22:15:06.779473+03:00", updated_at: "2021-03-13T22:15:06.779473+03:00", DeletedAt: null, user_id: 19, …}
2: {ID: 38, created_at: "2021-03-13T22:15:01.738319+03:00", updated_at: "2021-03-13T22:15:01.738319+03:00", DeletedAt: null, user_id: 19, …}
length: 3
__proto__: Array(0)
[[IsRevoked]]: false

而且是通过push方法this.elements .push(response.data)

Proxy {0: {…}, 1: {…}, 2: {…}, 3: Array(3)}
[[Handler]]: Object
[[Target]]: Array(4)
0: {ID: 40, created_at: "2021-03-13T22:15:09.769066+03:00", updated_at: "2021-03-13T22:15:09.769066+03:00", DeletedAt: null, user_id: 19, …}
1: {ID: 39, created_at: "2021-03-13T22:15:06.779473+03:00", updated_at: "2021-03-13T22:15:06.779473+03:00", DeletedAt: null, user_id: 19, …}
2: {ID: 38, created_at: "2021-03-13T22:15:01.738319+03:00", updated_at: "2021-03-13T22:15:01.738319+03:00", DeletedAt: null, user_id: 19, …}
3: Array(3)
0: {ID: 38, created_at: "2021-03-13T22:15:01.738319+03:00", updated_at: "2021-03-13T22:15:01.738319+03:00", DeletedAt: null, user_id: 19, …}
1: {ID: 33, created_at: "2021-03-13T10:59:06.521453+03:00", updated_at: "2021-03-13T10:59:06.521453+03:00", DeletedAt: null, user_id: 19, …}
2: {ID: 32, created_at: "2021-03-13T10:58:59.111903+03:00", updated_at: "2021-03-13T10:58:59.111903+03:00", DeletedAt: null, user_id: 19, …}
length: 3
__proto__: Array(0)
length: 4
__proto__: Array(0)
[[IsRevoked]]: false

如何添加数组的元素而不是数组本身?

【问题讨论】:

  • el.push(...arr) 会做
  • 或者Array.prototype.push.apply(this.elements, response.data)的传统方法

标签: javascript vue.js


【解决方案1】:

您可以将push 与展开运算符一起使用:

this.elements.push(...response.data)

例如

const arr1 = [1, 2, 3];
const arr2 = [12, 13, 14];
arr1.push(...arr2);
console.log(arr1);

【讨论】:

    【解决方案2】:

    您可以使用扩展运算符将原始数组与新数组连接起来:

    this.elements =[...this.elements, ...response.data]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-09
      • 2014-05-26
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      • 2018-01-18
      • 2013-08-04
      相关资源
      最近更新 更多