• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

131
Views
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.

almost 3 years ago · Juan Pablo Isaza
3 answers
Answer question

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(' > ')))

almost 3 years ago · Juan Pablo Isaza Report

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))

almost 3 years ago · Juan Pablo Isaza Report

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 += " > "; });

almost 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error