importance: 5 --- # Army of functions The following code creates an array of `shooters`. Every function is meant to output its number. But something is wrong... ```js run function makeArmy() { let shooters = []; let i = 0; while (i < 10) { let shooter = function() { // shooter function alert( i ); // should show its number }; shooters.push(shooter); i++; } return shooters; } let army = makeArmy(); army[0](); // the shooter number 0 shows 10 army[5](); // and number 5 also outputs 10... // ... all shooters show 10 instead of their 0, 1, 2, 3... ``` Why do all of the shooters show the same value? Fix the code so that they work as intended.