DEV Community

Discussion on: Daily Challenge #87 - Pony Express

Collapse
 
savagepixie profile image
SavagePixie

Gotta love that .reduce()

const riders = stations => {
  const total = stations.reduce((a, b) => 
    a.currentMiles + b <= 100 ? { currentMiles: a.currentMiles + b, riders: a.riders }
      : { currentMiles: b, riders: a.riders + 1 }, 
  { currentMiles: 0, riders: 1 })
  return total.riders
}

It could also be done as a one-liner with something like this, but it's a lot less clear:

const riders = s => s.reduce(([a, r], d) => a + d <= 100 ? [a+d, r] : [d, r+1], [0,1])[1]