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

171
Vistas
Cómo construir iterativamente una cadena

Tenía una pregunta hipotética para ti, así que disculpa el código. Esta pregunta se refiere a una prueba anterior que hice y una respuesta que no pude descifrar, por lo que no es "hacer la tarea", solo algo para satisfacer mi propia curiosidad. Desafortunadamente, no guardé nada de mi código.

Supongamos que tenemos la siguiente entrada:

 const input = [ ["add", "Hello"], ["add", ", how"], ["add", "is it"], ["add", "going today?"] ]

¿Cómo se haría para obtener el siguiente resultado:

 ["Hello", "Hello, how", "Hello, how is it", "Hello, how is it going today?"]

Utilicé una matriz de salida ( output ), recorrí input y en cada iteración empujé input[0][1] a output y, sin sorpresa, construí una matriz que es solo input[0][i] . Ejemplo muy aproximado:

 const output = []; for (let i = 0; i < input.length; i++ { output.push(input[0][i]; } => ["Hello", ", how", "is it", "going today?"]

Tenía algunos pensamientos sobre cómo ir, pero desafortunadamente se me acabó el tiempo. Un pensamiento fue simplemente iterar a través de la matriz de 'salida' e intentar += una cadena, y luego recorrer esa cadena (mientras se está construyendo) empujando a una matriz final. La otra forma era algún tipo de generador de cadenas, que no pude descifrar.

Disculpas si esto es simple, todavía estoy aprendiendo.

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

0

Usa Array.reduce , luego divide la matriz según el índice actual de input , finalmente join las divisiones.

 const input = [ ["add", "Hello"], ["add", ", how"], ["add", "is it"], ["add", "going today?"] ] console.log( input.reduce((pre, cur, index, itself) => { pre[index] = itself.slice(0, index + 1).map(item => item[1]).join(' ') // pre[index] = itself.slice(0, index + 1).filter(item => item[0] === 'add').map(item => item[1]).join(' ') // if assuming only join the action (verb) is 'add' return pre }, []) )

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede hacer un bucle simple y empujar una cadena en cada iteración

 const input = [ ["add", "Hello"], ["add", ", how"], ["add", "is it"], ["add", "going today?"] ] function addStr(arr){ let newArr = [] let str = "" for(let i=0; i<arr.length; i++){ str = str + arr[i][1] newArr.push(str) } return newArr } console.log(addStr(input))

about 4 years ago · Juan Pablo Isaza Denunciar

0

Similar a la otra respuesta usando reduce , pero una implementación diferente que tiendo a preferir porque es un poco más fácil de depurar IMO:

 const input = [ ["add", "Hello"], ["add", ", how"], ["add", "is it"], ["add", "going today?"] ] input.map(([_first, second]) => second) .reduce( (agg, newStr) => ([ ...agg, (agg[agg.length - 1] + " " + newStr).trim() ]), [""] ) .slice(1)

Esto lo acerca bastante, pero la única advertencia es que hay una rareza en la que no tiene un espacio entre Hello y ", how" que es un poco difícil de conciliar programáticamente.

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