封装一个函数,实现以下功能
// console.log( fn(9) ); // 输出 9 => 9
// console.log( fn(23) ); // 输出 23 => 2 + 3 => 5
// console.log( fn(2349) ); // 输出 2349 => 2 + 3 + 4 + 9 => 18 => 1 + 8 => 9
// console.log( fn(439331) ); // 输出 439331 => 4 + 3 + 9 + 3 + 3 + 1 => 23 => 2 + 3 => 5
求解答,刚刚开始学
function fn(num, hasPre = false) {
if (num < 10) return hasPre ? num : `${num} => ${num}`
const tokens = num.toString().split('')
return `${num} => ${tokens.join(' + ')} => ${fn(tokens.reduce((res, cur) => {
res += cur * 1
return res
}, 0), true)}`
}
console.log(fn(9));
console.log(fn(23));
console.log(fn(439331));