Вы не используете оператор var
, let
или const
для объявления i
, поэтому он считается глобальной переменной.
Это означает то же самое, что вы используете i
в silnia
функция та же самая, что и в цикле for
вне ее;по сути, цикл вне его выполняется один раз, силния увеличивается i
до 6, и как только он возвращается к циклу for
в глобальной области видимости, он останавливается, потому что i>koniec.length
(ETA: Затем он пытается получить доступ к sylnia(5)[6]
потому что i
равно 6 в тот момент времени, который не определен)
Попробуйте это:
function silnia(n) {
var wynikSilni = [];
for (var i = 1; i < (n + 1); i++) {
wynikSilni.push(i);
}
return wynikSilni;
}
koniec = [1, 2, 3];
for (var i = 0; i < koniec.length; i++) {
// Returns only undefined:
console.log(silnia(5)[i]);
// Works no problem:
// console.log(silnia(5)[2]);
}