Existuje řada objektů, tak jako tam, kde je "kategorie" klíč a nějaké "série" klíče.
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
},
]
(Všimněte si, že "kategorie" můžete být skoro žádnou hodnotu, i když tam bude pravděpodobně více podobné hodnoty, stejně jako některé jedinečné hodnoty, např. existuje více objektů s 'kategorie' hodnota 'Kategorie 3, ale pouze 1 s 'kategorie' hodnota 'Kategorie 2')
Následující řádky kódu budou sčítat všechny series_1 pro objekty s stejné kategorii
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]
});
}
Tak to by mělo za následek:
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
}
]
Nicméně, chci, aby bylo možné přidávat nejen series_1, ale i všechny ostatní položky.
Tento příklad má pouze kategorie a series_1 a series_2 jako klíče. Nicméně, tam by mohlo být:
- series_3
- series_4
- series_5
- series_6
- series_7
- atd..
Jak mohu účet pro všechny potenciální series_x?
Zamýšleným výsledkem:
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
na první objekt pouze, skončí jakoseries_3: NaN
ve výsledku.