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

319
Vistas
¿Cómo agregar los valores de una matriz de objetos en función de una condición? JS

Estoy buscando sumar los campos de mis objetos de acuerdo con un valor de mi objeto

Por ejemplo, tengo una matriz:

 [ { "month": 4, "periodDays": 1, "expected": 5 }, { "month": 5, "periodDays": 10, "expected": 40 }, { "month": 5, "periodDays": 11, "expected": 35 }, { "month": 6, "periodDays": 8, "expected": 20 } ]

y yo quiero:

 [ { "month": 4, "periodDays": 1, "expected": 5 }, { "month": 5, "periodDays": 21, "expected": 75 }, { "month": 6, "periodDays": 8, "expected": 20, },

Sé que puedo usar el reductor pero no puedo hacer que funcione con una condición.

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

0

Puede usar Array.reduce() para crear el resultado deseado.

Comenzamos creando un mapa utilizando el valor del month como clave. Luego inicializamos los días del período y los valores esperados a cero.

Para cada objeto, luego agregamos los días del período y esperamos obtener la suma para cada uno.

Finalmente, usamos Object.values() para convertir nuestro mapa en una matriz:

 let input = [ { "month": 4, "periodDays": 1, "expected": 5 }, { "month": 5, "periodDays": 10, "expected": 40 }, { "month": 5, "periodDays": 11, "expected": 35 }, { "month": 6, "periodDays": 8, "expected": 20 } ] const result = Object.values(input.reduce((acc, { month, periodDays, expected }) => { acc[month] = acc[month] || { month, periodDays: 0, expected: 0 }; acc[month].periodDays += periodDays; acc[month].expected += expected; return acc; }, {})); console.log('Result:', result)
 .as-console-wrapper { max-height: 100% !important; }

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