首页 > 解决方案 > 在对象javascript数组中推送元素

问题描述

我有一个带有对象和孩子的对象数组,孩子可以有元素

let array = {
  account: "account 1",
  children: [
    {
      account: "1",
    },
   {
      account: "2",
    },
  ],
  total: {
    debit: 96,
    credit:96,
  },
},
  {
    account: "account 2",
    children: [
      {
        account: "1",
      },
    ],
    total: {
      debit: 45,
      credit: 96,
    },
  }
]

预期的数组是将一个对象推送给这里的​​每个孩子,该对象将是我们在底部拥有的全部对象。

预期结果:

let resultArray = {
  account: "account 1",
  children: [
    {
      account: "1",
    },
   {
      account: "2",
    },
   {
    debit: 96,
    credit:96,
  },
  ],
  total: {
    debit: 96,
    credit:96,
  },
},
  {
    account: "account 2",
    children: [
      {
        account: "1",
      },
    {
      debit: 45,
      credit: 96,
    },
    ],
    total: {
      debit: 45,
      credit: 96,
    },
  },

有什么相同的建议吗?

标签: javascriptecmascript-6

解决方案


var resultArray = array.map((data) => {
   const newChildrenArray = [...data.children];
   newChildrenArray.push({...data.total});
   return { ...data, children: newChildrenArray };
});
   

注意:您的数组和 resultArray 无效。它们应该是这样的: let array = [obj1, obj2]

希望这能解决您的问题!


推荐阅读