Не могу выйти из рекурсии
function consoleRec(sourse) {
console.log(sourse.shift());
consoleRec(sourse);
}
consoleRec(['я', 'умею', 'писать', 'рекурсивные', 'функции']);
Условие: Запрещено использовать циклы и методы для работы с массивами. Функция должна принимать два аргумента: массив и… что-то еще. Что именно - остается на ваше усмотрение.
Пример вызова:
consoleRec(['я', 'умею', 'писать', 'рекурсивные', 'функции'], ???);
Должна вывести на экран:
я
умею
писать
рекурсивные
функции
Реализация рекурсивного алгоритма всегда должна содержать в себе:
В своей реализации вы забыли про второе.
function consoleRec(src) {
if (src.length === 0) return; // крайний случай, пустой массив
console.log(src.shift()); // действие текущей итерации
consoleRec(src); // рекурсивный вызов для уменьшенного массива
}
consoleRec(['я', 'умею', 'писать', 'рекурсивные', 'функции']);
Обращаясь к условию Вашей задачи
Запрещено использовать циклы и методы для работы с массивами
мы не можем изменять исходный массив(или срезать его части), поэтому вторым параметром придётся передать текущий размер задачи:
/* Передача размера задачи
*/
function r1(src, taskSize) {
if (taskSize === 0) return;
r1(src, taskSize-1);
console.log(src[taskSize-1]);
}
/* Передача индекса начала необработанной части массива
*/
function r2(src, start) {
if (start === src.length) return;
console.log(src[start]);
r2(src, start + 1);
}
let list = ['я', 'умею', 'писать', 'рекурсивные', 'функции'];
r1(list, list.length);
r2(list, 0);
Не могу выйти из рекурсии
Вот так можно это реализовать:
function consoleRec(source, i) {
// Условие для выхода
if (source.length - 1 >= i) {
// Печать
console.log(source[i]);
// Вызов рекурсии
consoleRec(source, i + 1)
}
}
consoleRec(['я', 'умею', 'писать', 'рекурсивные', 'функции'], 0);
void function r(f, arr, i = 0) { f(arr[i]) || i++ < arr.length - 1 && r(f, arr, i) }(console.log, ['я', 'умею', 'писать', 'рекурсивные', 'функции'])
к стати, в условии задачи не сказано про рекурсию
let f = (a, b) => b(('' + a).replace(/,/g, '\n'))
f(['я', 'умею', 'писать', 'рекурсивные', 'функции'], console.log)
Виртуальный выделенный сервер (VDS) становится отличным выбором
помогите посчитать значения всех inputПробовал преобразовать значение инпут с помощью parseInt, считает некорректно
как сделать через setInterval так что-бы одинdiv исчезал (например через 5 секунд) и по исчезновению первого
На сайте есть квест, в рандомное время появляется попап, и кто первый кликнет получает приз Но некоторые люди использую через консоль поиск...