Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

88
Views
¿Cómo obtiene valor de un objeto multidimensional cuando la ruta del nombre se almacena en una matriz de longitud desconocida?

Estoy creando un directorio de carpetas y necesito permitir que los usuarios naveguen dentro de él. Tengo una variable global que almacena su ubicación en el directorio. ¿Cómo puedo acceder al contenido dentro de su carpeta seleccionada?

Esto es lo que yo qué.

 let location = ["2022","March","Week4"]; let content = folderInformation["2022"]["March"]["Week4"];

Sin embargo, los nombres de archivo "2022, marzo, semana 4, ect" los establece el usuario.

Así que podría hacer esto.

 let location = ["2022","March","Week4"]; let layer1 = location[0]; let layer2 = location[1]; let layer3 = location[2]; let content = folderInformation[layer1][layer2][layer3];

Sin embargo, el usuario podría tener 2 capas de profundidad o 15.

Lo intenté

 let layers = location.join("]["); let content = folderInformation[layers];

y

 let layers = "["+location.join("][")+"]"; let content = folderInformation+layers;

sin exito ¿Cuál es la mejor opción para acceder al contenido dentro del objeto?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Una versión corta con reducir:

 const content = location.reduce((o,l)=>o?.[l],folderinformation);
about 4 years ago · Juan Pablo Isaza Report

0

Recorra su matriz de locations y acceda a cada ubicación en el objeto de información de folderInformation una por una. De esta manera irás un nivel más profundo con cada iteración.

 function getFolderInformation(folderInformation, locations) { let currentLocation = folderInformation; for (const location of locations) { if (location in currentLocation) { currentLocation = currentLocation[location]; } } return currentLocation; } const folderInformation = { '2022': { 'Februari': { 'Week1': { title: 'Nope', description: 'Not this one' } }, 'March': { 'Week3': { title: 'Also no', description: 'Wrong' }, 'Week4': { title: 'Foo', description: 'Bar' }, } } }; let locations = ["2022", "March", "Week4"]; let content = getFolderInformation(folderInformation, locations); console.log(content);

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!