2016-03-30 4 views
0

Не уверен, что эту функцию можно считать рекурсивной.Будет ли эта функция JS считаться рекурсивной?

var capitalizeWords = function(input) { 
    var results = []; 

    if(typeof input === 'string'){ 
      return input.toUpperCase(); 
    }else{ 
     input.forEach(function(word){ 
      results = results.concat(capitalizeWords(word));  
     }); 
    } 
    return results; 
}; 

// заглавной все слова в массиве

+5

Да, это рекурсивно ... – brso05

+1

Функция, которая сама по себе называется рекурсивной, по определению. – nekavally

+0

Да, как он себя называет. Дополнительная информация: http://pages.cs.wisc.edu/~calvin/cs110/RECURSION.html –

ответ

2

Да, но это не прямая рекурсия, а косвенная рекурсия.

Рекурсия не выполняется в действительной функции, а в анонимной функции более высокого порядка.

+0

Благодарим вас за разъяснение, вопрос оказался немного более интересным, и он выглядел первым. – nekavally

2

Да, это рекурсивная функция.

results = results.concat(capitalizeWords(word)); 
Смежные вопросы