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

74
Vistas
arr.reduce muestra la longitud más corta en lugar de la longitud más larga

Seguí el código debajo de 3. Encuentra la palabra más larga con la fuente del método reduce ()

¿Por qué el resultado muestra 2 en lugar de 5? mi lógica de la siguiente manera:

  • más largo.longitud = 0 ("") > palabraActual.longitud = 5 (cómo) -> falso, salida 5
  • long.length = 5 (cómo) > palabraactual.length = 5 (fuund) -> false, salida 5 (fuund)
  • más largo.longitud = 5 (fondo) > palabraActual.longitud = 2 (se) -> verdadero, salida 5 (fondo)

 let arr = ['howss', 'fuund', 'se'] let longestLength = arr.reduce((longest, currentWord) => longest.length > currentWord.length ? longest.length : currentWord.length , "") console.log(longestLength)

Además, ¿cómo cambio la línea 97 para que comience desde la misma posición que la línea 92 en la imagen a continuación? el formato actualmente muestra que la línea 97 es parte de la línea 93. Sin embargo, el código funciona bien

línea 97 clasificada como parte de la línea 93

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

0

El acumulador en la función de reduce debe ser un number que represente la longitud de la palabra más larga hasta el momento, inicialmente establecido en cero:

 const arr = ['howss', 'fuund', 'se']; const longestLength = arr.reduce((longestLen, currentWord) => longestLen > currentWord.length ? longestLen : currentWord.length , 0); console.log(longestLength);

Si desea establecer como una string que representa la palabra más larga, primero deberá calcularla y luego obtener la length después de que finalice el bucle:

 const arr = ['howss', 'fuund', 'se']; const longestLength = arr.reduce((longestWord, currentWord) => longestWord.length > currentWord.length ? longestWord : currentWord , "").length; console.log(longestLength);

about 4 years ago · Juan Pablo Isaza Denunciar

0

  1. Su valor inicial es una cadena vacía; debe ser cero para que pueda agregarle valores de longitud (el acumulador, el longest ) en cada iteración.

  2. No es necesario asignar la longitud de currentWord a la más longest.length ya que la longest es un valor único. Simplemente incremente el longest y devuélvalo para la próxima iteración.

 let arr = ['howss', 'fuund', 'se', 'guardian']; let longestLength = arr.reduce((longest, currentWord) => { if (currentWord.length > longest) { longest = currentWord.length; } return longest; }, 0); console.log(longestLength)

Honestamente, sin embargo, ni siquiera usaría reduce para esto.

 const arr = ['howss', 'fuund', 'se', 'guardian']; let len = 0; for (let el of arr) { if (el.length > len) len = el.length; } console.log(len);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto se debe a que está devolviendo una cadena vacía con cada iteración y la compara con el siguiente elemento. Lo que podría hacer es devolver la cadena más larga real y, en la iteración final, devolver su longitud;

 let arr = ['se', 'howss', 'fuund','test', "a"] let longestLength = arr.reduce((longest, currentWord, i, a) => ((longest = longest.length > currentWord.length ? longest : currentWord), i == a.length-1 ? longest.length : longest)) console.log(longestLength)

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