@apepbaby
Начинающий JavaScript разработчик.

Как работает рекурсия?

Вообщем недавно начал учить js по курсам и параллельно читать книгу "Выразительный JavaScript", начал читать тему про рекурсию, в принципе понимаю как она работает, но на примере из книги не могу разобрать.
function findSolution(target) {
    function find(current, history) {
        if(current == target) {
            return history;
        } else if(current > target) {
            return null;
        } else {
            return find(current + 5, `(${history} + 5)`) || 
                   find(current * 3, `(${history} * 3)`);
        }
    }
    return find(1, '1');
}
console.log(findSolution(24));

В частности не могу понять как язык понимает нужно умножать ему или прибавлять, прошу помогите!!!
  • Вопрос задан
  • 265 просмотров
Решения вопроса 1
Конкретно к твоему вопросу рекурсия не при чем.
return find(current + 5, `(${history} + 5)`) || find(current * 3, `(${history} * 3)`);

Чтобы понять как работает этот кусок кода нужно внимательно прочитать эту главу.
https://developer.mozilla.org/en-US/docs/Web/JavaS...
Особо обратить внимание на Short-circuit evaluation
если find(current + 5, `(${history} + 5)`) которое может быть приведено к false (в твоем случае null) то будет выполнен второй кусок кода
find(current * 3, `(${history} * 3)`)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Бери и делай
Как работает рекурсия?

Чтобы понять рекурсию, вам нужно сначала понять рекурсию (с)
Ответ написан
IonDen
@IonDen
JavaScript developer. IonDen.com
Вот в этом курсе чувак суперски объясняет рекурсию:
https://www.udemy.com/course/js-algorithms-and-dat...
Ответ написан
@Anonymous5454587
Рекурсия - это цикл, который вызывает самого себя.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы