Demo: Summarize Completed Bike Rides
Count completed ride minutes
A bike-share report must ignore cancelled rides. filter keeps completed rides, map turns each ride into minutes, and reduce totals those numbers, starting from 0 so an empty set is safe.
javascript
const rides = [
{ status: "completed", seconds: 900 },
{ status: "cancelled", seconds: 300 },
{ status: "completed", seconds: 1200 }
];
const minutes = rides
.filter((ride) => ride.status === "completed")
.map((ride) => ride.seconds / 60)
.reduce((total, duration) => total + duration, 0);
console.log(`${minutes} completed minutes`);
Run the example, then change both completed rides to cancelled and confirm it reports zero. In the next exercise, you will summarize delivered parcels using a different unit and return a reusable result rather than just logging a total.