es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo agrupar un array json y sumar su total por semana?

Tengo un array

[
    {
        "week_year": "49-2021",
        "total": 6.5
    },
    {
        "week_year": "45-2021",
        "total": 28.5
    },
    {
        "week_year": "45-2021",
        "total": 6.5
    },
    {
        "week_year": "44-2021",
        "total": 6.5
    },
    {
        "week_year": "46-2021",
        "total": 14.5
    }
]

Quiero agruparlos por semana_year y sumar su total por semana. ¿Hay alguna otra forma de hacerlo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, se puede utilizar el método Array.prototype.reduce() para agrupar y sumar los datos del array por la misma semana_año.

    El método reduce() toma una función de retorno como su argumento y la ejecuta para cada elemento en el array. La función de retorno toma dos argumentos, el acumulador y el valor actual. El acumulador es utilizado para almacenar el resultado de la función de retorno y el valor actual es el elemento actual del array.

    En este caso, se puede utilizar el método reduce() para agrupar los datos del array por la misma semana_año y sumar su total por semana. El código se vería algo así:

    javascript
    const resultado = array.reduce((acumulador, corriente) => {
    const semanaAño = corriente.semana_año;
    if (!acumulador[semanaAño]) {
    acumulador[semanaAño] = { semana_año: semanaAño, total: 0 };
    }
    acumulador[semanaAño].total += corriente.total;
    return acumulador;
    }, {});

    La variable resultado contendrá los datos agrupados y sumados del array.

Comments are closed.