1
I used reduce to group my Json, but I need to group by more than 1 parameter to make the group correctly.
Follows the function used:
> this.totalSpecific = obj.reduce(function (acumulador, valor) {
> var indice = acumulador.map((o) => o.janela).indexOf(valor.janela);
> if (indice == -1) {
> acumulador.push(valor);
> } else {
> acumulador[indice].qtd += valor.qtd;
> }
> return acumulador;
> }, []);
Using this function I have the following return:
[{"janela":"08","qtd":2342,"port":0},
{"janela":"20","qtd":1546,"port":0}]
Example return I need:
[{"janela":"08","qtd":1142,"port":0},
{"janela":"08","qtd":1250,"port":1}
{"janela":"08","qtd":950,"port":2}
{"janela":"20","qtd":1046,"port":0},
{"janela":"20","qtd":450,"port":1},
{"janela":"20","qtd":50,"port":2}]
Follows Json used:
let obj = [{
"janela": "08 ",
"qtd": 3,
"port": 0
},
{
"janela": "08 ",
"qtd": 11,
"port": 0
},
{
"janela": "08 ",
"qtd": 63,
"port": 0
},
{
"janela": "08 ",
"qtd": 2,
"port": 0
},
{
"janela": "08 ",
"qtd": 129,
"port": 0
},
{
"janela": "08 ",
"qtd": 3,
"port": 0
},
{
"janela": "08 ",
"qtd": 5,
"port": 0
},
{
"janela": "08 ",
"qtd": 6,
"port": 0
},
{
"janela": "08 ",
"qtd": 33,
"port": 0
},
{
"janela": "08 ",
"qtd": 53,
"port": 0
},
{
"janela": "08 ",
"qtd": 77,
"port": 0
},
{
"janela": "08 ",
"qtd": 589,
"port": 0
},
{
"janela": "08 ",
"qtd": 4,
"port": 0
},
{
"janela": "08 ",
"qtd": 13,
"port": 0
},
{
"janela": "08 ",
"qtd": 18,
"port": 0
},
{
"janela": "08 ",
"qtd": 1,
"port": 0
},
{
"janela": "08 ",
"qtd": 131,
"port": 0
},
{
"janela": "08 ",
"qtd": 36,
"port": 0
},
{
"janela": "08 ",
"qtd": 24,
"port": 0
},
{
"janela": "08 ",
"qtd": 109,
"port": 0
},
{
"janela": "08 ",
"qtd": 1,
"port": 0
},
{
"janela": "08 ",
"qtd": 11,
"port": 0
},
{
"janela": "08 ",
"qtd": 40,
"port": 0
},
{
"janela": "08 ",
"qtd": 1,
"port": 0
},
{
"janela": "08 ",
"qtd": 6,
"port": 0
},
{
"janela": "08 ",
"qtd": 43,
"port": 0
},
{
"janela": "08 ",
"qtd": 351,
"port": 0
},
{
"janela": "08 ",
"qtd": 68,
"port": 0
},
{
"janela": "08 ",
"qtd": 21,
"port": 0
},
{
"janela": "08 ",
"qtd": 84,
"port": 0
},
{
"janela": "08 ",
"qtd": 340,
"port": 0
},
{
"janela": "08 ",
"qtd": 6,
"port": 0
},
{
"janela": "08 ",
"qtd": 5,
"port": 1
},
{
"janela": "08 ",
"qtd": 3,
"port": 1
},
{
"janela": "08 ",
"qtd": 5,
"port": 1
},
{
"janela": "08 ",
"qtd": 3,
"port": 1
},
{
"janela": "08 ",
"qtd": 9,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 2,
"port": 2
},
{
"janela": "08 ",
"qtd": 3,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 3,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 6,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 2,
"port": 2
},
{
"janela": "08 ",
"qtd": 1,
"port": 2
},
{
"janela": "08 ",
"qtd": 5,
"port": 2
},
{
"janela": "08 ",
"qtd": 3,
"port": 2
},
{
"janela": "20 ",
"qtd": 150,
"port": 0
},
{
"janela": "20 ",
"qtd": 4,
"port": 0
},
{
"janela": "20 ",
"qtd": 12,
"port": 0
},
{
"janela": "20 ",
"qtd": 1,
"port": 0
},
{
"janela": "20 ",
"qtd": 38,
"port": 0
},
{
"janela": "20 ",
"qtd": 188,
"port": 0
},
{
"janela": "20 ",
"qtd": 247,
"port": 0
},
{
"janela": "20 ",
"qtd": 9,
"port": 0
},
{
"janela": "20 ",
"qtd": 11,
"port": 0
},
{
"janela": "20 ",
"qtd": 2,
"port": 0
},
{
"janela": "20 ",
"qtd": 1,
"port": 0
},
{
"janela": "20 ",
"qtd": 1,
"port": 0
},
{
"janela": "20 ",
"qtd": 22,
"port": 0
},
{
"janela": "20 ",
"qtd": 155,
"port": 0
},
{
"janela": "20 ",
"qtd": 23,
"port": 0
},
{
"janela": "20 ",
"qtd": 1,
"port": 0
},
{
"janela": "20 ",
"qtd": 1,
"port": 0
},
{
"janela": "20 ",
"qtd": 1,
"port": 0
},
{
"janela": "20 ",
"qtd": 15,
"port": 0
},
{
"janela": "20 ",
"qtd": 96,
"port": 0
},
{
"janela": "20 ",
"qtd": 81,
"port": 0
},
{
"janela": "20 ",
"qtd": 12,
"port": 0
},
{
"janela": "20 ",
"qtd": 75,
"port": 0
},
{
"janela": "20 ",
"qtd": 169,
"port": 0
},
{
"janela": "20 ",
"qtd": 9,
"port": 0
},
{
"janela": "20 ",
"qtd": 5,
"port": 1
},
{
"janela": "20 ",
"qtd": 31,
"port": 1
},
{
"janela": "20 ",
"qtd": 1,
"port": 1
},
{
"janela": "20 ",
"qtd": 5,
"port": 1
},
{
"janela": "20 ",
"qtd": 31,
"port": 1
},
{
"janela": "20 ",
"qtd": 1,
"port": 1
},
{
"janela": "20 ",
"qtd": 4,
"port": 2
},
{
"janela": "20 ",
"qtd": 3,
"port": 2
},
{
"janela": "20 ",
"qtd": 1,
"port": 2
},
{
"janela": "20 ",
"qtd": 38,
"port": 2
},
{
"janela": "20 ",
"qtd": 3,
"port": 2
},
{
"janela": "20 ",
"qtd": 18,
"port": 2
},
{
"janela": "20 ",
"qtd": 7,
"port": 2
},
{
"janela": "20 ",
"qtd": 3,
"port": 2
},
{
"janela": "20 ",
"qtd": 1,
"port": 2
},
{
"janela": "20 ",
"qtd": 61,
"port": 2
},
{
"janela": "20 ",
"qtd": 3,
"port": 2
},
{
"janela": "20 ",
"qtd": 6,
"port": 2
}
]
You want to add the field
qtd
forjanela
andport
equal?– Luiz Felipe