Функция некорректно считает числа Фибоначчи

Задача:реализовать функцию, которая при каждом вызове будет выводить следующее число Фибоначчи. Ограничение: в скрипте не должно быть глобальных переменных; разрешено только две функции. Мой код пропускает первые два элемента и как-то странно применяет цикл: при увеличении значения i считает элементы с шагом i. Где ошибка?

function makeFibonacciFunction() {
    let nOne = 1;
    let nTwo = 1;
    function currentResult() {
        let nCurrent;
        for (let i = 0; i < 1; i++) {
            nCurrent = nOne + nTwo;
            nOne = nTwo;
            nTwo = nCurrent;
        }
        return nCurrent;
    }
    return currentResult;
}

const fibonacci = makeFibonacciFunction();
console.log(fibonacci()); // Вывод в консоль: 1
console.log(fibonacci()); // Вывод в консоль: 1
console.log(fibonacci()); // Вывод в консоль: 2
console.log(fibonacci()); // Вывод в консоль: 3
console.log(fibonacci()); // Вывод в консоль: 5

Ответы (2 шт):

Автор решения: MBo

Уберите цикл вообще.

Возвращайте значение nOne, которое было на входе в функцию

 nCurrent = nOne
 nOne = nTwo
 nTwo = nTwo + nCurrent
 return nCurrent
→ Ссылка
Автор решения: Fersio

Поменяйте значение переменной
let nTwo = 0;

→ Ссылка