Уменьшить многомерность с помощью массива строк и чисел в Javascript

#javascript #arrays #multidimensional-array #reduce

#javascript #массивы #многомерный массив #уменьшить

Вопрос:

У меня есть некоторое представление о том, как работает reduce, но у меня проблема с многомерным массивом. Как я могу уменьшить это:

 y = [['x', 0.5], ['x', 0.5], ['z', 2], ['z', 2]];
  

в это:

 y = [['x', 1], ['z', 4]];
  

Спасибо!

Комментарии:

1. Вы хотите сгруппировать их по первому элементу массива. Найдите «массив групп объектов» и измените критерии с использования свойства объекта на использование первого элемента массива.

Ответ №1:

Вы могли бы уменьшить с помощью накопленного объекта, который хранит сумму ключей, а затем использовать Object.entries() для преобразования его обратно в массив array

 const y = [
  ["x", 0.5],
  ["x", 0.5],
  ["z", 2],
  ["z", 2],
]

const res = Object.entries(
  y.reduce((acc, [key, value]) => {
    acc[key] = (acc[key] || 0)   value
    return acc
  }, {})
)

console.log(res)