Esiste un array di oggetti come allora, dove c'è una 'categoria' chiave e un po 'di serie' le chiavi.
arrOne = [
{
"series_1": 25,
"category": "Category 1",
"series_2": 50
},
{
"series_1": 11,
"category": "Category 2",
"series_2": 22
},
{
"series_1": 32,
"category": "Category 1",
"series_2": 74
},
{
"series_1": 74,
"category": "Category 3",
"series_2": 98
},
{
"series_1": 46,
"category": "Category 3",
"series_2": 29
},
]
(Si noti che 'categoria' può essere praticamente qualsiasi valore, anche se ci sarà probabilmente più simili valori, come pure alcuni valori univoci, ad esempio, ci sono più oggetti con la 'categoria' valore 'Categoria 3', ma solo 1 con 'categoria' valore 'Categoria 2')
Le seguenti righe di codice, aggiungere il backup di tutti series_1 per gli oggetti della stessa categoria
var objForAllCategories = {};
this.arrOne.forEach(item => {
if (objForAllCategories.hasOwnProperty(item.category))
objForAllCategories[item.category] = objForAllCategories[item.category] + item.series_1;
else
objForAllCategories[item.category] = item.series_1;
});
for (var prop in objForAllCategories) {
this.allCategoriesAndValues.push({
category: prop,
series_1: objForAllCategories[prop]
});
}
Così si tradurrebbe in:
allCategoriesAndValues = [
{
"category": "Category 1",
"series_1": 57 // 25 + 32 adding up series_1 from all 'Category 1' items in arrOne
},
{
"category": "Category 2",
"series_1": 11 // only 1 'Category 2' from arrOne
},
{
"category": "Category 3",
"series_1": 120 // 74 + 46 adding up series_1 from all 'Category 3' items in arrOne
}
]
Tuttavia, voglio essere in grado di aggiungere non solo series_1 ma anche tutti gli altri elementi.
Questo esempio ha solo la categoria e series_1 e series_2 come chiavi. Tuttavia, ci potrebbe essere:
- series_3
- series_4
- series_5
- series_6
- series_7
- ecc..
Come posso account per tutti i potenziali series_x?
Risultato previsto:
allCategoriesAndValues = [
{
"category": "Category 1",
"series_1": 57,
"series_2": 124,
..... if 'series_3', 'series_4' etc. existed, it would be included in this as above
},
{
"category": "Category 2",
"series_1": 11,
"series_2": 22,
..... if 'series_3', 'series_4' etc. existed, it would be included in this as above
},
{
"category": "Category 3",
"series_1": 120,
"series_2": 127,
..... if 'series_3', 'series_4' etc. existed, it would be included in this as above
}
]
series_3: 5
per il primo oggetto, si finisce comeseries_3: NaN
nel risultato.