Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

188
Vistas
Recorriendo las palabras clave de la ruta de acceso de un archivo

Comenzando con una cadena que tiene la ruta completa de un archivo, armé esta función para recorrer los directorios de la ruta del archivo hacia atrás. Funciona, pero mi instinto me dice que estoy cocinando demasiado la tubería y decidí que esta era una buena oportunidad para una experiencia de aprendizaje. ¿Cómo refactorizaría esto para que sea más sucinto?

 const path = require('path') function walk(file) { let dir = path.dirname(file) let arr = dir.split('/').filter(e => e).reverse() let paths = [] for(let i = arr.length; i >= 0; i--) { let sub = arr.slice(i) paths.push(sub.reverse().join('/')) } paths = paths.filter(e => e).reverse() paths.forEach(path => { console.log('/' + path) }) } walk('/D0/D1/D2/D3/foo.bar')
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Otra versión recursiva más simple:

 const path = require('path'); function walk(start) { const dir = path.dirname(start) console.log(dir); if (dir !== '/') { walk(dir); } } walk('/D0/D1/D2/D3/foo.bar');

Saldrá:

 "/D0/D1/D2/D3" "/D0/D1/D2" "/D0/D1" "/D0" "/"
about 4 years ago · Juan Pablo Isaza Denunciar

0

Podrías usar una función recursiva.

te dejo aqui un ejemplo

 const path = require('path') function walk(file) { let dir = path.dirname(file) walkRecursively(dir.split('/')) } function walkRecursively(dirs) { if(dirs.length < 2) { return; } console.log(path.join(dirs)) const nextDirs = dirs.slice(0, -1) walkRecursively(nextDirs) } walk('/D0/D1/D2/D3/foo.bar')
about 4 years ago · Juan Pablo Isaza Denunciar

0

puedes hacer algo como esto

 function walk(file) { const path = file.split('/').filter(e => e).slice(0, -1) const result = path.reduce((res, p, i) => { return [ ...res, `${res[i - 1] || ''}/${p}` ] }, []).reverse() console.log(result) } walk('/D0/D1/D2/D3/foo.bar')

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda