Как собрать данные из множества аргументов в один аргумент или сложить данные из множества аргументов в один аргумент
Есть код
function calculateRelicParts(selectedValues, maxValues) {
const relicData = { какие то данные с именами Н1, Н2, С3...т.д, и целыми числами к этим данным }
};
const selectedRelic = `R${selectedValues}`;
const maxRelic = `R${maxValues}`;
const selectedRelicData = relicData[selectedRelic];
const maxRelicData = relicData[maxRelic];
const relicParts = {};
for (const material in maxRelicData) {
relicParts[material] = maxRelicData[material] - selectedRelicData[material];
}
console.log(relicParts)
return sumRelicParts(relicParts);
const relicParts в зависимости от того что выбрал пользователь создает объекты с данными типа, но точное количество объектов и данных в них неизвестно ( взято с консоли для примера 3 объекта ):
relick_calculator.js:23 {H1: 160, H2: 220, H3: 50, H4: 40, H5: 40, …}
relick_calculator.js:23 {H1: 60, H2: 80, H3: 70, H4: 20, H5: 0, …}
relick_calculator.js:23 {H1: 30, H2: 40, H3: 30, H4: 20, H5: 0, …}
Вопрос : как объединить эти объекты в один объект\аргумент ?
Ну или сразу сложить без создания одного объекта\аргумента, т.к один объект со всеми данными нужен только чтоб создать следующую функцию где целые числа у переменных с одинаковыми именами будут складываться ( Н1:хх + Н1:хх + Н1:хх.. = Н1:total xx, С1:хх + С1:хх + С1:хх..= С1:total xx и т.д., с разными именами складывать нельзя ).
Перепробовал уже кучу методов и все не так работают. То объекты объединить не могу не итерируется, то создаю функцию для сложения, а та для каждого получаемого объекта создает свой контейнер и по сути на выходе я получаю то же что и на входе т.к приходит допустим 10 аргументов с данными и функция создает 10 контейнеров котором только данные из одного аргумента и нет суммы т.к складывать по сути нечего \ нет повторяющихся имен переменных. Вот пример моих попыток создать функцию для сложения данных из объектов
function sumRelicParts(relicParts) {
const sumObject = {};
for (const material in relicParts) {
// проверяем, есть ли текущий материал в объекте sumObject
if (material in sumObject) {
// добавляем текущее значение к существующему значению в объекте sumObject
sumObject[material] += relicParts[material];
}
}
// возвращаем объект sumObject с суммами
}
и в результате на выходе те же данные что и на входе а не сумма в виде ( если основываться на примерах объектов с верху) :
{H1: 250, H2: 340, H3: 150, H4: 80, H5: 40, …}