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

291
Vistas
Mapeo de una cadena en una matriz 2D para un efecto de "zig-zag"

primera publicación, nuevo en la codificación en js. Estoy tratando de crear una función que tome una matriz de (2) cadenas como entrada, como ["coderbyte", "3"], siendo la primera cadena cualquier cadena aleatoria. La segunda cadena representa la cantidad de filas que la función debe crear en una matriz 2D. Luego, la función debe imprimir la primera cadena en un patrón en zigzag como el siguiente:

crear
 endeudado

Luego, la función debe devolver la palabra formada al combinar los caracteres a medida que itera a través de cada fila, por ejemplo, "creoebtdy". Declaré la matriz vacía y usando un ciclo while, logré colocar los primeros tres caracteres en los lugares correctos de la matriz usando el siguiente código:

 //initialize array of arrays of empty spaces rows = Number(strArr[1]) columns = strArr[0].length //console.log(rows) //console.log(columns) a = Array(rows).fill('').map(x => Array(columns).fill('')) let i = 0 //a[0][0]= strArr[0][0] while (i <= rows-1) { a[i][i]= strArr[0][i] //console.log(a) i++ } //console.log(a) //let j = i - 2 //console.log(i) while (i >= rows && i < rows*2) { let j = i - 2 a[j][i] = strArr[0][i] i++ j-- } console.log(a) } stringChal3(["coderbyte", "3"])

Recibo un error "TypeError: Cannot set property '5' of undefined" en la línea 23 (a[j][i]...) cuando intento colocar "e" y "r" en la matriz. No estoy seguro de cómo corregir el error. ¡Toda ayuda es muy apreciada!

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

0

Dado que " toda ayuda es muy apreciada ", aquí hay una forma completamente diferente de hacer un efecto de zig-zag.

Viene de notar que el patrón de zigzag usa cada 4to carácter en las filas superior e inferior, pero en diferentes compensaciones/fases (0 para la fila superior y 2 para la fila inferior), y la fila del medio usa cada 2do carácter (comenzando del desplazamiento 1).

 const zigzag = str => { const zig = (period, phase) => [...str] .map((character, index) => (index % period == phase) ? character : ' ') .join(''); console.log(zig(4, 0)); console.log(zig(2, 1)); console.log(zig(4, 2)); } zigzag('coderbyte');

Versión que admite un número arbitrario de filas

 const zigzag = (str, rows) => { const zig = (period, phase) => [...str] .map((character, index) => [phase, period - phase].includes(index % period) ? character : ' ') .join(''); for (let row = 0; row < rows; ++row) { console.log(zig(rows + rows - 2 || 1, row)); } } zigzag('coderbyte', 3); console.log('another example:'); zigzag('abcdefghijklmnopqrstuvwxyz', 5);

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