Принятый ответ правильный, но я чувствую, что никакого реального объяснения сделано не было.
Позвольте мне попытаться объяснить, проблема здесь в классическом пропущенном закрытии.
Переменная 'i' увеличивается на 1 за каждую итерацию цикла,
и событие нажатия на самом деле не выполняется , применяется ли оно только к элементу a, оно суммируется до длины arrOptions, равной 10.
Итак, цикл продолжается до тех пор, пока 'i' не станет 10,
Затем, всякий раз, когда вызывается событие нажатия, оно принимает значение i, равное 10.
сейчас, для решения,
В решении мы используем замыкание, поэтому, когда мы применяем значение 'i' к событию нажатия элемента a, оно фактически получает точное значение i во времени.
Внутренняя функция события onclick создает замыкание, в котором она ссылается на параметр (arrOptions [i]), означающий, что фактическая переменная i находится в нужный момент.
Функция в итоге закрывается с этим значением безопасно,
и может затем вернуть соответствующее значение при выполнении события нажатия.