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

152
Vistas
¿Cómo encontrar cadenas más largas de una matriz?

Quiero encontrar cadenas más largas de esta matriz:

const myArr = ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "siete", "octavo"]

en esta matriz, "segundo", "cuarto", "octavo" tiene una longitud de 6. Quiero devolverlos en una matriz.

 const myArr = ["first", "second", "third", "fourth", "fifth", "sixth", "seven", "eighth"] function longerStrings(arr) { let largeStrings = [] let longerWord = '' for (let name of arr) { if (name.length > longerWord.length) { longerWord = name largeStrings.push(longerWord) } } return largeStrings } longerStrings(myArr)

el resultado esperado es : ["segundo","cuarto","octavo"]

pero devuelve =["primero","segundo"]

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

0

Cuando se identifica una palabra más larga que cualquiera de las encontradas hasta ahora, debe crear una matriz completamente nueva (descartando los elementos que tenía antes) y colocar en ella la nueva palabra que establece el récord. También debe enviar un nombre a la matriz si el nombre que se itera no establece un registro, pero es igual al establecidor de registros actual.

 const myArr = ["first", "second", "third", "fourth", "fifth", "sixth", "seven", "eighth"] function longerStrings(arr) { let largeStrings = [] let longerWord = '' for (let name of arr) { if (name.length > longerWord.length) { longerWord = name largeStrings = [name]; } else if (name.length === longerWord.length) { largeStrings.push(name) } } return largeStrings } console.log(longerStrings(myArr));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Más fácil si usa filtro en su lugar:

 const myArr = ["first", "second", "third", "fourth", "fifth", "sixth", "seven", "eighth"] const longest = myArr.reduce((a, b) => a.length > b.length ? a : b); const res = myArr.filter(el => el.length >= longest.length) console.log(res)

Eso devuelve:

 ["second","fourth","eighth"]

O, como Sash menciona a continuación, se puede hacer en un solo paso, aunque la solución no es tan legible:

 let max = 0; const reducer = myArray.reduce((previous, current) => { if (current.length > max) { previous = []; } if (current.length >= max) { previous.push(current); max = current.length; } return previous; }, []); console.log(reducer);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Simplemente puede ordenar la matriz por longitud descendente y luego seleccionar solo valores que tengan la misma longitud que el primer elemento:

 const myArr = ["first", "second", "third", "fourth", "fifth", "sixth", "seven", "eighth"] const result = myArr .sort((a, b) => b.length - a.length) .filter((v, _, arr) => v.length == arr[0].length) console.log(result)

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