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

问题描述 投票:0回答:1

我相信有很多方法可以实现,但我在寻找好的变体。我有一个对象数组,其中有 孩子 对象数组。我想在循环中改变对象。对象有 孩子 对象数组在同一级别的父对象旁边添加这个子对象,索引为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: ""
javascript arrays object add
1个回答
1
投票

你可以使用递归并实现一些遍历函数,在你的数据的节点中运行,并只在一个层次上减少它们

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

function reorderData(node)
{
   (function traverse(node, root)
   {
      if (Array.isArray(node))
         node.forEach(n => traverse(n, root))
      else if (node.child) {
         node.child.forEach(item => data.splice(data.indexOf(node)+1, 0, item))
         delete node.child
      }      
   })(node, node)
}

reorderData(data)
console.log(data)
© www.soinside.com 2019 - 2024. All rights reserved.