在JavaScript中将父对象添加到对象数组之后,将子对象添加到对象数组

我敢肯定有很多方法可以实现这一目标,但是我正在寻找一个好的变体。 我有对象数组和子对象数组。我想要循环更改对象。具有子对象数组的对象在与索引2相同级别的父对象旁边添加此子对象,但不删除任何对象。

(63) [{…},
    1:
    PartImage: null
    Qty: 3
    Desc: null
    reference: 2
    child: [{…}]
    id: 49
    notes: ""
    2:
    PartImage: null
    Qty: 3
    Desc: null
    reference: 2
    id: 50
    notes: ""
评论
bsequi
bsequi

您可以使用递归并实现一些遍历功能来遍历数据的各个节点,并仅将其减少一级

let data = [
   {
      id: 49,
      child: [
         {
            id: 55
         }
      ]
   },
   {
      id: 50
   }      
]

function traverse(node, root, callback)
{
   if (Array.isArray(node))
      node.forEach(n => traverse(n, root, callback))
   else if (node.child) {
      node.child.forEach(item => data.push(item))
      delete node.child
   }
}

console.log(data)
traverse(data, data, job)
console.log(data)
点赞
评论