【问题标题】:Issue with the value stored in the array structure is being changed存储在数组结构中的值的问题正在更改
【发布时间】:2021-07-02 01:16:02
【问题描述】:

我有一个包含一个数组字段的对象结构,在前端部分(Angular)我根据选择将值添加到数组中,对象结构如下所示

todayRates: 10
yesterdayRates: 5
to: Array(1)
0: [3]
length: 1
__proto__: Array(0)
__proto__: Object

但是当我在后端代码(节点)中使用此值保存到 dB 时,数组结构会更改为数组中的数组to: [[3]]

为什么结构会发生变化,我该怎么做才能有一个数组和其中的值而不是数组中的数组,即简单的to: [3] 而不是to: [[3]]

在前端,我将值添加到数组中,如下所示

 this.V2.pact.to.push((this.pactList.list.filter((data) =>{return data.toList})).map((data)=>{ return data.id}));

【问题讨论】:

  • 如果你转换到/从你的数据库,也许你应该看看那里。
  • @vanowm 此更改在保存到 dB 之前发生
  • 没有看到代码我最好的猜测是你做错了什么......
  • @vanowm 它是否必须与我将值添加到前端数组的方式做任何事情
  • @vanowm 我想通了,这是由于我将值添加到数组中的方式,当推送更改为时排序为 ((this.pactList.list.filter((data ) =>{return data.toList})).map((data)=>{ this.V2.pact.to.push(data.id)}));

标签: javascript node.js arrays angular


【解决方案1】:
let arr = (this.pactList.list.filter(data => data.toList)).map(data=> data.id); 
this.V2.pact.to.push(...arr);

对我来说,你的函数的结果是一个数组。我将它添加到变量arr 如果您将arr 变量推送到您的数组中,则您实际上拥有一个数组数组。如果你想解构你的数组,使用上面的推送函数中的...arr 应该可以工作

【讨论】:

  • 你可以直接在map函数中进行,你可以将数据推送到数组中,你可以看看上面的评论和评论
  • 我知道你可以将每个元素都推送到数组中:) 但一开始你试图在另一个数组中添加一个数组,所以我提出了一个解决方案来实现同样的技巧
猜你喜欢
  • 2021-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
  • 1970-01-01
相关资源
最近更新 更多