¿Existe un método de matriz (o cualquier otra forma realmente) para agrupar objetos dentro de una matriz por una propiedad y sumar por otra? Entonces devolver el máximo?
let array = [ {ticker:'AAPL',val:400}, {ticker:'IBM',val:200}, {ticker:'AAPL',val:500}, {ticker:'SBUX',val:800}, ] let obj = {} array.forEach( h => { obj[h.ticker] = obj[h.ticker] || 0; obj[h.ticker] += h.val }) let temp = Object.keys( obj ).map(function ( key ) { return obj[key] }); console.log(Math.max(...temp)) // returns 900Si solo desea modificarlo para usar reduce en lugar de forEach , puede hacerlo:
let obj = array.reduce((a,b) => ({...a, [b.ticker]: (a[b.ticker] || 0) + b.val}), {});