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

188
Vistas
¿Cómo funciona realmente la función Reducir en JavaScript?

Estoy tratando de usar la función de reducción para encontrar la matriz de longitud máxima en las matrices , así que probé este enfoque al principio, pero no funcionó.

 const arrays = [[1],[3,3,4],[3,4],[4,5],[6]] let maxLength = arrays.reduce( (acc, cur) => { return acc.length > cur.length ? acc.length : cur.length }) console.log(maxLength) // output : 1

así que traté de obtener la longitud de otra manera y funcionó

 const arrays = [[1],[3,3,4],[3,4],[4,5],[6]] let maxLength = arrays.reduce( (acc, cur) => { return acc.length > cur.length ? acc : cur }).length console.log(maxLength) // output : 3

¿Alguien puede explicar cuál es la diferencia entre los dos enfoques?

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

0

Si está interesado en la longitud de la matriz más larga, almacene la longitud en el acumulador (como en el primer ejemplo); si está interesado en la matriz con la mayor longitud, almacene la matriz en el acumulador (como en el segundo ejemplo). Lo que no puedes hacer es mezclar y combinar.

Obtener la longitud de la matriz más larga

En este caso, debe proporcionar un valor inicial (por ejemplo, 0 ) para reduce() .

 const arrays = [[1],[3,3,4],[3,4],[4,5],[6]]; const max = arrays.reduce((a, {length}) => Math.max(a, length), 0); console.log(max);

Obtener matriz con la longitud más larga

En este caso, no es necesario que proporcione un valor inicial, ya que el valor predeterminado es el primer elemento de la matriz.

 const arrays = [[1],[3,3,4],[3,4],[4,5],[6]]; const max = arrays.reduce((a, v) => v.length > a.length ? v : a); console.log(max);

about 4 years ago · Juan Pablo Isaza Denunciar

0

En el primer código, la función reduce devuelve un número, mientras que en el segundo devuelve una matriz. Cuando devuelve un número, la próxima vez que se llama a su función, toma la longitud de un número, no una matriz. El segundo código es correcto, porque estás tomando la longitud de una matriz cada vez.

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