Există o serie de obiecte ca atât în cazul în care există o "categorie" cheie și unele "serie" cheile.
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
},
]
(Rețineți că o "categorie" poate fi destul de mult orice valoare, deși nu va fi probabil mai multe valori similare, precum și unele valori unice exemplu, există mai multe obiecte cu categoria de "valoare" Categoria 3', dar numai 1 cu categoria de "valoare" Categoria 2')
Următoarele linii de cod se va adăuga până toate series_1 pentru obiecte cu aceeași categorie
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]
});
}
Deci ar rezulta:
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
}
]
Cu toate acestea, vreau să fie în măsură pentru a adăuga nu doar series_1 dar, de asemenea, toate celelalte elemente.
Acest exemplu are doar categoria și series_1 și series_2 ca cheile. Cu toate acestea, ar putea fi:
- series_3
- series_4
- series_5
- series_6
- series_7
- etc..
Cum pot cont pentru toți potențialii series_x?
Destinat rezultat:
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
la primul obiect numai, se sfârșește caseries_3: NaN
în rezultat.