Нужно складывать числа до тех пор пока число не будет однозначным JS, что не так с моим кодом

        // https://www.codewars.com/kata/541c8630095125aba6000c00
    function digitalRoot(n) {
          let res = 0;
          n = n.toString().split("").map(Number).reduce((sum,item) => sum = sum + item);
          if (n.toString().length == 0) {
            res = n;
          }else {
            digitalRoot(n);
          }
          //console.log(res);
          return res;
          }
console.log(digitalRoot(158));

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

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

Как вариант...

function digitalRoot(n) {
  n = n.toString().split("").reduce((sum, item) => sum = sum + Number(item), 0);
  if (n < 10) return n;
  return digitalRoot(n);
}
console.log(digitalRoot(158));

→ Ссылка