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

266
Visualizações
JS Recursive Nested JSON Array Children Join Key
[ { "PRODUCT_CATEGORY_ID": "1", "NAME": "OTOMOBİL PARÇALARI", "DESCRIPTION": "Araba Parçaları", "ACTIVE": "True", "PARENT_PRODUCT_CATEGORY_ID": "", "children": [ { "PRODUCT_CATEGORY_ID": "3", "NAME": "HONDA PARÇALARI", "DESCRIPTION": "Honda Parçaları", "ACTIVE": "True", "PARENT_PRODUCT_CATEGORY_ID": "1" }, { "PRODUCT_CATEGORY_ID": "4", "NAME": "RENAULT PARÇALARI", "DESCRIPTION": "Renault Parçaları", "ACTIVE": "True", "PARENT_PRODUCT_CATEGORY_ID": "1", "children": [ { "PRODUCT_CATEGORY_ID": "5", "NAME": "MINIMAL RENAULT PARÇALARI", "DESCRIPTION": "", "ACTIVE": "True", "PARENT_PRODUCT_CATEGORY_ID": "4" } ] } ] } ]

Tengo un json con hijos anidados y quiero las rutas de los hijos de este objeto. los niños anidados pueden ser aún más. Quiero que la salida sea una matriz de cadenas.

 [ "OTOMOBİL PARÇALARI" "OTOMOBİL PARÇALARI > HONDA PARÇALARI" "OTOMOBİL PARÇALARI > RENAULT PARÇALARI" "OTOMOBİL PARÇALARI > RENAULT PARÇALARI > MINIMAL RENAULT PARÇALARI" ]

Lo intenté

 function findAllChildren (id, results, depth) { for (d in data) { if (data[d].parent == id) { data[d].depth = depth results.push(data[d]) findAllChildren(data[d].id, results, depth + 1) } } } var results = [] findAllChildren(1, results, 0) return results.map(function (element) { return Array(element.depth + 1).join(' -> ') + element.name})

Gracias por tu ayuda de antemano, lo busque y no lo encontré, puedes compartirlo conmigo en el enlace.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede usar un enfoque recursivo, por ejemplo, creando una función getPaths que obtendrá una lista de rutas usando una clave de property como entrada.

En este caso, usaremos 'NOMBRE' y crearemos una matriz de las rutas relevantes.

 let input = [ { "PRODUCT_CATEGORY_ID": "1", "NAME": "OTOMOBİL PARÇALARI", "DESCRIPTION": "Araba Parçaları", "ACTIVE": "True", "PARENT_PRODUCT_CATEGORY_ID": "", "children": [ { "PRODUCT_CATEGORY_ID": "3", "NAME": "HONDA PARÇALARI", "DESCRIPTION": "Honda Parçaları", "ACTIVE": "True", "PARENT_PRODUCT_CATEGORY_ID": "1" }, { "PRODUCT_CATEGORY_ID": "4", "NAME": "RENAULT PARÇALARI", "DESCRIPTION": "Renault Parçaları", "ACTIVE": "True", "PARENT_PRODUCT_CATEGORY_ID": "1", "children": [ { "PRODUCT_CATEGORY_ID": "5", "NAME": "MINIMAL RENAULT PARÇALARI", "DESCRIPTION": "", "ACTIVE": "True", "PARENT_PRODUCT_CATEGORY_ID": "4" } ] } ] } ] function getPaths(obj, property, path = '') { const paths = []; for(let k in obj) { if (typeof(obj[k]) === 'object') { paths.push(...getPaths(obj[k], property, path)); } else if (k === property) { path += (path ? ' > ' : '') + obj[k]; paths.push(path) } } return paths; } console.log('Paths:', getPaths(input, 'NAME'))

about 4 years ago · Juan Pablo Isaza Relatório
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