Существует массив объектов, подобных этому, где есть ключ "категория" и некоторые ключи "серии".
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
},
]
(Обратите внимание, что "категория" может быть практически любым значением, хотя, вероятно, будет несколько похожих значений, а также некоторые уникальные значения, например, существует несколько объектов со значением "категория ""Категория 3", но только 1 со значением "категория ""Категория 2")
В следующих строках кода будут суммированы все серии 1 для объектов с одной и той же категорией
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]
});
}
Таким образом, это привело бы к:
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
}
]
Однако я хочу иметь возможность добавлять не только серии_1, но и все другие элементы.
В этом примере в качестве ключей используются только категории и серии_1 и серии_2. Тем не менее, могут быть:
- серии_3
- серии_4
- серия 5
- серия 6
- серия 7
- и т.д..
Как я могу учесть все потенциальные серии x?
Предполагаемый результат:
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
только для первого объекта это заканчивается такseries_3: NaN
в результате.