Задача с codewars JS

Есть условие задачи: Given n, take the sum of the digits of n. If that value has more than one digit, continue reducing in this way until a single-digit number is produced. The input will be a non-negative integer.

Вот мой код, но программа пишет что код неверен, хотя в VSC у меня все работает. Подскажите пожалуйста, что я делаю не так?

function digital_root(n) {
  let result = n.toString(10).split('').map(Number);
  res = result.reduce((sum, item) => {
      return sum + item
  })
  if (res < 10) {
    return res
  } else if (res / 10 < 10) {
    res = res.toString(10).split('').map(Number).reduce((sum, item) => {
      return sum + item
    })
  } 
}

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

Автор решения: slippyk

const solve = (n) => {
  while (n > 9) {
    n = n.toString(10).split('').map(Number).reduce((acc, num) => {
      return acc + num;
    }, 0);
  }
  return n;
};

console.log(solve(1234));
console.log(solve(555));
console.log(solve(1));
console.log(solve(1058962));

→ Ссылка
Автор решения: MBo

Для решения достаточно вычислить остаток по модулю 9

m = n%9
if (m)
   return m
if (n) 
   return 9
return 0

а вот эти все число-в-строку, строку-в-число, мапредусы - только планету зря греть.

→ Ссылка
Автор решения: V-tyna

В принципе логика правильная, только есть пару нюансов. Первый - это неправильные условия (особенно в блоке else if (res >= 10) - мы должны сделать проверку - "ещё если res больше или равно 10", в первом if так же советую поправить на res < 9, чтобы не допустить пересечения одинаковых проверок чисел больше 10). Второй нюанс - это нужно явно вернуть значение в блоке else if. И вуаля, всё заработает.)

    function digital_root(n) {

        let result = n.toString(10).split('').map(Number);
        res = result.reduce((sum, item) => {
            return sum + item
    })
        if (res < 9) {
            return res
       } else if (res  >= 10) {
           return res = res.toString(10).split('').map(Number).reduce((sum, item) => {
           return sum + item
       })
    } 
  }
→ Ссылка