Давно я такого трешака не видел, неправильная передача аргументов, уход в рекурсию, а самое забавное, что в самой библиотеки куча мелких недочетов. Такое чувство, что передо мной лютый чел, просмотревший "Освоение JS за час". Не в обиду :)
У тебя кстати функция не умела правильно подсчитывать когда нужно завершать работу, также не забывай про выход из функции методом return;
Кстати, ты знал, что за подобные решения таких вопросов люди обычно платят денежку?
Можно закрывать вопрос, вот решение, сегодня я добрый :^)
https://plnkr.co/edit/1HraKrIV44aUIPkSbILc?p=preview