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

155
Visualizações
¿Cómo navegar por objetos anidados de profundidad desconocida?

Estoy creando una aplicación para tomar notas y he decidido almacenar todas las notas y la estructura en un archivo JSON. En javascript, obtengo el JSON con AJAX, lo analizo y lo envío al sitio web.

La estructura de mi nota es una matriz de objetos que se pueden anidar, como esta (si es una nota, tiene un atributo de "contenido", si es una carpeta, tiene una matriz de objetos (también puede ser una matriz vacía si la carpeta debería vaciar):

 data { entries = [ { name: "Some note", content: "This is a test note" }, { name: "folder", children: [ { name: "Bread recpie", content: "Mix flour with water..." }, { name: "Soups", children: [ { name: "Pork soup", content: "Add meat, onion..." }, { name: "Chicken soup" content: "....." } ] } ] } ] }

Para enumerar el directorio raíz, es simple, simplemente recorro la matriz, ya que solo genera los registros de nivel superior:

 for (entry of data.entries) { const li = document.createElement("li"); li.textContent = entry.name; if (entry.children) { li.className = "folder"; } else { li.className = "file"; } loop.appendChild(li); }

Pero, ¿y las carpetas? ¿Cómo debo proceder para enumerar las carpetas si se desconoce la profundidad de anidamiento? ¿Y cómo me dirijo a la carpeta específica? ¿Debo agregar ID únicos a cada objeto para poder filtrar la matriz con ellos? ¿O debería almacenar algún tipo de información de profundidad en una variable todo el tiempo?

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

0

Está haciendo esto más difícil para usted al guardar datos en un archivo JSON. Ese no es un buen enfoque. Lo que debe hacer es diseñar un esquema de base de datos apropiado para sus datos y crear una API que genere un patrón predecible de datos con los que su cliente pueda trabajar.

Sugeriría tener un recurso de Folder y un recurso de Note vinculados a través de una relación de uno a muchos. Cada recurso de Folder puede tener muchas entradas de Note asociadas, pero cada Note tiene solo una Folder a la que está vinculada. Sugiero usar un ORM, porque la mayoría facilita la carga de datos relacionados. Por ejemplo, si elige Laravel, puede usar Eloquent y luego obtener todas las notas para una carpeta es tan fácil como:

 $folderWithNotes = Folder::with('notes')->where('name', 'school-notes')->get();

Saber PHP no viene al caso. Todavía deberías poder ver la lógica de eso.

Si crea una base de datos y crea una API del lado del servidor para manejar sus datos, terminará con JSON en el lado del cliente que tiene un formato predecible y es fácil trabajar con él.

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