Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

122
Visualizações
How do i loop through an array and restructure it to be deeply nested json for vue plugin

I need to reformat json with a query into a spesific nested format

[
  {
    "id": 54,
    "parent_id": null,
  },
  {
    "id": 55,
    "parent_id": 54,
  },
  {
    "id": 56,
    "parent_id": 54,
  },
  {
    "id": 57,
    "parent_id": 55,
  },
  {
    "id": 58,
    "parent_id": 55,
  },
  {
    "id": 59,
    "parent_id": 55,
  }
]

Im looking for a js algorithm to solve this problem //The above json needs to be in this format: //(not accurate acourding to given data)

[
  { 
   "id": 54,
   "children": [
       { "id": 55, "children": [] },
       { "id": 53, "children": [
         { "id": 50, "children": [] }
       ]
      }
    ]
  }
]

I have this script that works but its very in efficient to loop through every instance and child........................................................................................

createDataSet(){
            let array = []
            let data = this.getData()

            data.forEach(level => {
              if(level.parent_id === null){
                array.push({id: level.id, name: level.name, title: level.name, children: []})
              }
            });
            array.forEach(element => {
              data.forEach(level => {
                if(level.parent_id === element.id){
                  element.children.push(
                    {id: level.id, name: level.name, title: level.name, children: []}
                  )
                }
              });
            });
            array.forEach(element => {
              element.children.forEach(child => {
                data.forEach(level => {
                  if(level.parent_id === child.id){
                    child.children.push(
                      {id: level.id, name: level.name, title: level.name, children: []}
                    )
                  }
                })
              })
            })
            array.forEach(element => {
              element.children.forEach(child => {
                child.children.forEach(granChild => {
                  data.forEach(level => {
                    if(level.parent_id === granChild.id){
                      granChild.children.push(
                        {id: level.id, name: level.name, title: level.name, children: []}
                      )
                    }
                  })
                })
              })
            })
return array
}
almost 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda