Рекурсия в JavaScript: понимание и примеры
Рекурсия в JavaScript - это процесс, при котором функция вызывает саму себя до тех пор, пока не будет достигнут определенный результат. Это позволяет более эффективно решать задачи, которые требуют итеративных алгоритмов или циклов.
Примеры использования рекурсии в JavaScript:
1) Вычисление факториала числа:
function factorial(num) {
if (num === 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}
console.log(factorial(6)); // 720
2) Поиск максимального числа в массиве:
function findMax(arr) {
if (arr.length === 1) {
return arr[0];
} else {
var subMax = findMax(arr.slice(1));
return arr[0] > subMax ? arr[0] : subMax;
}
}
console.log(findMax([1, 2, 5, 3, 8, 4])); // 8
3) Рекурсивный подсчет суммы чисел:
function sum(num) {
if (num === 1) {
return 1;
} else {
return num + sum(num - 1);
}
}
console.log(sum(5)); // 15
Рекурсия может быть полезна, когда нужно выполнить одну и ту же задачу для разных входных данных, или для работы с древовидными структурами данных, такими как DOM деревья. Однако, необходимо быть осторожным при использовании рекурсии, так как неправильно написанный код может вызвать бесконечную рекурсию и привести к переполнению стека вызовов.