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

157
Visualizações
Ruta similar a Unix convertida a json con javascript

Estoy migrando de python a javascript. Entonces, ahora estoy trabajando en un proyecto de reacción en el que necesito convertir una ruta similar a Unix a json. En realidad, no hay carpetas, son listas de categorías unidas por "/". Esto es lo que tengo:

  • Modelo de categoría contiene las categorías y el slug play como lista de categorías unidas por "/"
 const categorySchema = mongoose.Schema({ name: { type: String, required: true }, slug: { type: String, unique: true }, // Repr the route image: { type: String }, topLevel: { type: String }, description: { type: String }, }, { timestamps: true });

Una representación de una categoría es así:

 { name: "embedded", slug: "/electronics/embedded", image: "/some/image.png", topLevel: "electronics", description: "This is a brief description." }

Ahora lo que quiero es cuando tengo una lista de objetos como este

 [ { id: 1, name: "embedded", slug: "/electronics/embedded", image: "/some/image.png", topLevel: "electronics", description: "This is a brief description." }, { id: 2, name:"electonics", slug:"/electronics", topLevel: "electronics", image: "/some/image.png", description: "..." }, { id: 3, name: "house", slug: "/house", topLevel: "house", image: "/some/image.png", description: "...", } ]

para terminar teniendo de la babosa que son los caminos tipo Unix como:

 [ { id: 2, node: "electronics", children: [{ id: 1, node: "embedded", children: [], }], }, { id: 3, node: "house", children: [] }, ]

Esto es lo que realmente estoy luchando tratando de tener. Si alguien puede ayudar, es más que bienvenido.

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

0

Basado en el comentario de ayer sobre si ya probé algo o no, básicamente se me ocurrió algo, pero aún no es perfecto porque no caminé profundamente en todo el árbol. Según los datos de entrada y el tipo de salida que quiero tener, esta es mi primera prueba:

 function listToTree(list) { var node, i, roots = []; for (i = 0; i < list.length; i += 1) { node = list[i]; var slugList = node.slug.split("/").filter((x) => x !== ""); var children = []; if (slugList.length > 1) { var parent = slugList.shift(); var parentNode = { node: parent, id: node.id, children: [], }; roots.push(parentNode); for (var j = 0; j < slugList.length; j++) { var child = { id: node.id, node: slugList[j], children: [], }; children.push(child); } roots[i].children = [...children]; } else { roots.push({ node: node.topLevel, id: node.id, children: [], }); } } return roots; }

La salida:

 const roots = listToTree(exampleData); console.log(roots[0]); { node: 'electronics', id: 1, children: [ { id: 1, node: 'embedded', children: [] } ] }

Entonces, todavía necesito ayuda y, para ser honesto, esta respuesta aquí, aún no perfecta, se inspiró en la respuesta hecha por Halcyon aquí .

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