Why these beat a raw for loop
You could write all of this with a for loop and a result array. You could. But these one-liners say exactly what they mean in one line, and they never run out of bounds or forget to push.
// Instead of this...
const active = [];
for (const c of coins) {
if (c.active) active.push(c);
}
// ...write this.
const active = coins.filter(c => c.active);
The game uses map/filter/find constantly because a game does these same three things every frame: transform every item, keep the ones on screen, find the first match. Learning to read them fluently means you can read almost any game's data code.