#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)