return возвращает undefined в рекурсивной функции

Пытаюсь написать простую рекурсивную функцию, но return возвращает undefined, не смотря на то, что console.log() выводит всё правильно. Возможно стоило поместить return в другое место, но в таком случае функция зациклиться.

Вот мой код:

var sum = ""
function my_function(n) {
    sum += " " + n
    if (n == 1) {
        console.log(sum)
        return sum;
    }
    my_function(n-1);

}

console.log(my_function(9))

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Александр Сычёв

Нужно добавить еще один return после вызова функции

let sum = ""

function my_function(n) {

  sum += " " + n
  if (n == 1) {
    console.log(sum)
    return sum;
  }

  my_function(n - 1);
  return sum


}

console.log(my_function(9))

P.S: тут подробно описан ответ

→ Ссылка