Вы можете сделать это за O (n) время, зациклившись и сохранив самый большой элемент в объекте.В конце ваши значения будут в Object.values
групп:
let tickerA = [{pair: 'AUDUSD',baseAsset: 'AUD',lastPriceUSD: 0.74,volume: 1000}, {pair: 'AUDUSD',baseAsset: 'AUD',lastPriceUSD: 0.76,volume: 2000}, {pair: 'USDEUR',baseAsset: 'USD',lastPriceUSD: 1.25,volume: 1200}, {pair: 'USDEUR',baseAsset: 'USD',lastPriceUSD: 1.19,volume: 1500}]
let groups = tickerA.reduce((largest, {baseAsset, lastPriceUSD, volume}) => {
/*
* if it's a new baseAsset or bigger than a previous one, save it
* to the group under the baseAsset key
*/
if (!largest[baseAsset] || largest[baseAsset]['volume'] < volume ) {
largest[baseAsset] = {baseAsset, lastPriceUSD, volume}
}
return largest
}, {})
TickerB = Object.values(groups)
console.log(TickerB)