Take a look at this small, typical code snippet: let car_ids = []; for (let i = 1; i <= 5; i++) { const car_id = `car-${i}`; if (car_is_empty(car_id)) { car_ids.push(car_id); } } return car_ids; I call this the iterate-and-mutate pattern. It comes up all the time in code. But every time we see it, … Continue reading The Iterate-and-Mutate Programming Anti-Pattern