Задать вопрос
@yuriytkachenko

Еще проще и более практический пример рекурсии?

Пример рекурсии:
реализуем формулу xn= x*xn-1
function power(x,n){
  if(n == 1) {
     return x;
  }
  else {
     return x*power(x,n-1);
}
  }
console.log(power(2,3));


Но пример лично для меня немного сложный и мало вероятно что данная формула часто применяется при создании сайтов.
Можете привести пример попроще и который действительно мог бы использоваться при создании сайта?
  • Вопрос задан
  • 291 просмотр
Подписаться 3 Простой 4 комментария
Решения вопроса 2
Kulaxyz
@Kulaxyz
Могу лучше
Приведу пример, который сам на днях использовал. К сожалению не на JS, а на PHP и он не такой простой, но возможно немного вам поможет:
public function post()
    {
        if (!$this->parent()) {
            return  $this->commentable_id;
        }
        else {
            return $this->parent()->post();
        }
    }

В общем суть такая, что нужно было уведомлять пользователя, если кто-то прокомментировал его пост, при этом, на сайте многоуровневая система комментариев. И если кто-то написал ответ на комментарий, то он уже никак не связан с постом, а автора уведомить всё таки нужно. Если комментарий написан не как ответ на чей-то, а как просто коммент под сам пост, то у него parent вернёт null, а иначе вернёт комментарий, ответом на который он является. И с помощью рекурсии я реализовал получение id поста, на который кто-то оставил коммент: в момент создания комментария вызывается этот метод post (функция, если так понятнее), которая, если это коммент первого уровня, вернёт id поста, а если нет, то вызовет этот же метод, но уже у комментария, ответом на который является данный. И эта функция будет вызываться сколько угодно много раз, пока не дойдёт до высшего уровня и не получит оттуда id поста.
Ответ написан
DevMan
@DevMan
при создании сайта рекурсия либо вообще не применяется, либо очень ограниченно.

вот вам попроще пример
var factorial = function(n) {
    if(n == 0) {
        return 1
    } else {
        return n * factorial(n - 1);
    }
}
factorial(num);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@McBernar
Рекурсия отлично подходит, если нужно рендерить DOM из древовидного набора данных.

Я как-то делал виджет, который встраивается на сайты. Чтобы не делать iframe(так было нужно) и не писать тонны одинаковых createElement и appendChild — просто скармливаешь функции конфиг в JSON, и она его парсит и рендерит элементы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы