Вы можете сделать что-то подобное, используя reduce
Проверьте, имеет ли последний элемент accumulator
тот же key
, что и текущий элемент в контексте.Если да, то суммируйте value
частей.В противном случае нажмите на элемент accumulator
const data = [[2, 12], [3, 12], [3, 15], [5, 15]];
const newArray = data.reduce((acc, a, i) => {
if (i > 0 && a[0] === data[i-1][0])
acc[acc.length-1][1] += a[1]
else
acc.push(a);
return acc
}, [])
console.log(newArray)
Приведенная выше логика с использованием троичных и операторов запятой
const data = [[2, 12], [3, 12], [3, 15], [5, 15]];
const newArray = data.reduce((acc, a, i) => (
i > 0 && a[0] === data[i-1][0]
? acc[acc.length-1][1] += a[1]
: acc.push(a), acc), [])
console.log(newArray)