В данном видео я расскажу про рекурсию и с ее помощью решу некоторые практические задачи, например, перебор многомерного массива любого уровня вложенности.
Исходники кода
var i = 0;
function func() {
console.log(i++);
if (i <= 10) {
func();
}
}
func();
function func(arr) {
console.log(arr.shift());
if (arr.length != 0) {
func(arr);
}
}
func([1, 2, 3]);
function getSum(arr, sum) {
sum += arr.shift();
if (arr.length != 0) {
sum = getSum(arr, sum);
}
return sum;
}
console.log(getSum([1, 2, 3], 0));
function func(arr, sum = 0) {
sum += arr.shift();
if (arr.length != 0) {
sum = func(arr, sum);
}
return sum;
}
console.log(func([1, 2, 3]));
var sum = 0;
function func(arr) {
sum += arr.shift();
if (arr.length != 0) {
sum = func(arr);
}
return sum;
}
console.log(func([1, 2, 3]));
function func(arr) {
for (var i = 0; i < arr.length; i++) {
if (typeof arr[i] == 'object') {
arr[i] = func(arr[i]);
} else {
arr[i] = arr[i] + '!';
}
}
return arr;
}
console.log(func([1, [2, 7, 8], [3, 4, [5, 6]]]));
function reduceNum(num) {
var sum = getDigitsSum(num);
if (sum >= 10) {
return reduceNum(sum);
} else {
return sum;
}
}
function getSum(arr) {
var sum = 0;
for (var i = 0; i < arr.length; i++) {
sum += Number(arr[i]);
}
return sum;
}
function getDigits(num) {
return String(num).split('');
}
function getDigitsSum(num) {
return getSum(getDigits(num));
}
console.log(reduceNum(99));