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

191
Vistas
Matriz de transformación Script JS

Hola chicos, tengo una pequeña pregunta sobre un script y una forma de obtener un formato de salida como:

 hierarchicalCategories.lvl0 : Womens hierarchicalCategories.lvl1 : Womens > Accessories hierarchicalCategories.lvl2 : Womens > Accessories > Bags hierarchicalCategories.lvl3 : Womens > Accessories > Bags > Sport- & Travel Bags

Mi matriz es simplemente: ["Mujer", "Accesorios", "Bolsos", "Bolsos deportivos y de viaje"]
Así que traté de codificar una función y obtener los datos esperados, pero estoy bloqueado sobre cómo obtener mi posición actual y las primeras posiciones de mi matriz hasta el principio.

 let categories = ["Womens", "Accessories", "Bags", "Sport- & Travel Bags"]; let rootName = "hierarchicalCategories.lvl"; const reindexFunction = () => { let current_position = 0; let size = categories.length; for (current_position; current_position < size; current_position++) { let first = rootName + current_position; if (current_position !== 0) { let categ = categories[current_position - 1] + " " + ">" + " " + categories[current_position]; console.log(first+":"+categ); } else { let categ = categories[current_position]; console.log(first+":"+categ); } } }; reindexFunction();

El resultado de esto es:

 hierarchicalCategories.lvl0:Womens hierarchicalCategories.lvl1:Womens > Accessories hierarchicalCategories.lvl2:Accessories > Bags hierarchicalCategories.lvl3:Bags > Sport- & Travel Bags

Estoy seguro de que es fácil, pero busqué algún método para hacer esto y no encontré nada. Gracias por su ayuda, consejos.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Simplemente itere sobre las categorías y obtenga las categorías del índice 0 al índice actual. Utilicé los métodos forEach , slice y join de matrices:

  • iterar sobre las categorías con forEach
  • obtener los elementos del índice 0 al índice actual con segmento
  • formatee el segmento al formato deseado con join

Nota: console.log agrega un espacio entre cada argumento de forma predeterminada

 let categories = ["Womens", "Accessories", "Bags", "Sport- & Travel Bags"]; let rootName = "hierarchicalCategories.lvl"; categories.forEach((c, i) => console.log(rootName+i, ':', categories.slice(0, i+1).join(' > ')))

about 4 years ago · Juan Pablo Isaza Denunciar

0

La solución más sencilla que se me ocurre sería asignar los índices de la matriz de categories a las cadenas que se crean al unir todos los elementos de la matriz hasta el índice.

Estoy haciendo esto usando Array.prototype.map y utilizando el segundo argumento que pasa a la función de devolución de llamada, que es el índice. El primer argumento sería el valor en sí, pero no nos interesa eso, por eso lo llamé _ y no se usa.

No estoy seguro del formato de salida exacto deseado: dijiste transformar matriz, por lo que asumo que el resultado debería ser otra matriz. Pero en caso de que ese no sea el caso, debería ser fácil de ajustar.

 const categories = ['Womens', 'Accessories', 'Bags', 'Sport- & Travel Bags'] const rootName = 'hierarchicalCategories.lvl' function buildHierarchicalCategories (categories) { return categories.map((_, i) => `${rootName}${i} : ${categories.slice(0, i + 1).join(' > ')}` ) } console.log(buildHierarchicalCategories(categories))

about 4 years ago · Juan Pablo Isaza Denunciar

0

O simplemente puede mantener las categorías y agregarles

 let categories = ["Womens", "Accessories", "Bags", "Sport- & Travel Bags"]; let rootName = "hierarchicalCategories.lvl"; let level = ""; categories.map((e, index) => { level += e; console.log(rootName + index + " : " + level); level += " > "; });

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