Как отслеживать значение с помощью переменной без сброса указанной переменной при рекурсивных вызовах, без использования глобальной переменной в JavaScript? - PullRequest
1 голос
/ 14 июля 2020

В основном у меня есть рекурсивная функция для вычисления пространства в определенных структурах. Я хочу отслеживать «пробел» на протяжении всей рекурсии без сброса значения пробела при каждом вызове. Раньше я использовал переменную space, объявленную вне функции, но это вызывало у меня проблемы. Возможно ли это без использования глобальной переменной? Как?

Текущий код:

var space = 0;
  
var fill = function(arr) {
    
    if(arr.length < 1) {
        return space;
    }

    for(let i=0; i<arr.length; i++){
        ... various conditions and arr manipulation ...
        space+=1
    }

    return fill(arr)
}

пример ввода:

fill([2,4,0,9])

1 Ответ

1 голос
/ 14 июля 2020

Вы можете взять второй параметр для подсчета.

var fill = function(array, space = 0) {
    if (array.length < 1) return space;

    // some code with
    space++;

    return fill(array, space);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...