Внутри коллбэка-обработчика выведите в консоль i— увидите, почему код падает. Во всех обработчиках одно и то же значение.
В точности ваш пример с несколькими решениями.
https://learn.javascript.ru/task/make-army
Перед тем, как смотреть в решения, советую ознакомиться с уроком, к которому эта задача привязана. Ну или после.