Как собрать данные из множества аргументов в один аргумент или сложить данные из множества аргументов в один аргумент

Есть код

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, …}


Ответы (0 шт):