将对象推送到对象数组导致整个数组发生意外更改[重复]

Posted

技术标签:

【中文标题】将对象推送到对象数组导致整个数组发生意外更改[重复]【英文标题】:pushing object to array of object resulting unexpected change to whole array [duplicate] 【发布时间】:2021-10-25 09:49:53 【问题描述】:

让我们跳到问题上

// lets say i have a simple array of objects inside an object

const abc = 
  a: 1,
  b: [aa: 1, bb: 2, aa: 2, bb: 2]


// then I want to update the array with push a new object

abc.b.push(aa: 3, bb: 3)

但为什么会这样


  a: 1,
  b: [[Object], [Object], [Object]]

我期待结果


  a: 1,
  b: [aa: 1, bb: 2, aa: 2, bb: 2, aa: 3, bb: 3]


我用nodejs得到的结果console.log(abc)

【问题讨论】:

正常,就是console.log问题。 console.log(JSON.stringify(abc)) 是解决方案 数组没有意外的变化。只是控制台选择显示数据的方式有所不同。 改用console.debug() 也可以在nodejs中使用console.debug(abc)console.dir(abc)获取结果 【参考方案1】:

const abc = 
  a: 1,
  b: [aa: 1, bb: 2, aa: 2, bb: 2]


// then I want to update the array with push a new object

abc.b.push(aa: 3, bb: 3)
console.log(JSON.stringify(abc))

【讨论】:

也可以使用console.debug(abc)console.dir(abc)在nodejs中获取结果。

以上是关于将对象推送到对象数组导致整个数组发生意外更改[重复]的主要内容,如果未能解决你的问题,请参考以下文章

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

如果特定键不存在,则将对象推送到数组[重复]

将表单数据推送到对象数组

React Typescript 尝试更改数组对象的状态导致错误

搜索并将数组推送到MongoDB中的嵌套对象数组[重复]

如何在对象数组中获取 1 到 n 键值并将它们推送到新数组?(Javascript)[重复]