no devuelve nada, pero devolver verdadero o falso se ejecuta bien. Siempre que la matriz contenga todos los números impares, debería llegar a devolver verdadero, ya que la matriz estará vacía y devolverá falso si el elemento de la matriz no es un número impar.
function isOdd(a) { return a % 2 == 1 ? true : false } function someRecursive(ary, isOdd) { if(ary.length == 0){ return true; } if(isOdd(ary[0])){ someRecursive(ary.slice(1), isOdd); }else{ return false; } } someRecursive([1,3, 5], isOdd);No está devolviendo nada dentro si la condición. Devuelve el valor devuelto por la función recursiva.
Algo como esto :
if(isOdd(ary[0])){ return someRecursive(ary.slice(1), isOdd); } function isOdd(a) { return a % 2 == 1 ? true : false } function someRecursive(ary, isOdd) { if(ary.length == 0){ return true; } if(isOdd(ary[0])){ return someRecursive(ary.slice(1), isOdd); }else{ return false; } } console.log(someRecursive([1,3, 5], isOdd))