Добавить дочерние объекты в массив объектов после родительского объекта в JavaScript - PullRequest
1 голос
/ 09 мая 2020

Я уверен, что есть много способов добиться этого, но я ищу хороший вариант. У меня есть массив объектов с массивом объектов child . Хочу в l oop поменять объект. Объект, который имеет массив объектов дочерний , добавляет этих дочерних элементов рядом с родительским на том же уровне с индексом 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: ""

1 Ответ

1 голос
/ 09 мая 2020

Вы можете использовать рекурсию и реализовать некоторую функцию обхода, чтобы проходить через узлы ваших данных и сокращать их только на одном уровне

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...