Во-первых, вы должны знать, что arrays
имеет свойство .length для этой цели.Зная это, и если вы все еще хотите получить его рекурсией, я сделаю что-то вроде следующего, использующее итератор и Array.slice () .Этот подход позволяет избежать использования свойства .length
для определения условия остановки.
const count = (list) =>
{
let ite = list[Symbol.iterator]();
if (ite.next().done)
return 0;
else
return 1 + count(list.slice(1));
}
console.log(count([]));
console.log(count([undefined, null]));
console.log(count([1, 2, undefined, 3, 4]));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}