以下是我的代码,为什么它返回13而不是4:

const superNumber = (n) => {
  let nums = n.toString().split('').map(Number);
  let sum = parseInt(nums.reduce((x, y)=> x + y));
  console.log('Nums: ',nums, 'Sum: ', sum);
  if(sum > 9) {
     superNumber(sum);
  }
   return sum;
}

let result = superNumber(148);
console.log('Ans: ', result);

以下是控制台日志(log):

  • 数字:[1,4,8]总和:13
  • 数字:[1,3]总和:4//计算总和 正确,但返回了前一个值
  • 答案:13

推荐答案

你把return忘在那里了:

if (sum > 9) 
    return superNumber(sum);
//  ^^^^^^ here you forgot to return

const superNumber = (n) => {
  let nums = n.toString().split('').map(Number);
  let sum = parseInt(nums.reduce((x, y) => x + y));
  console.log('Nums:', nums.toString(), ' Sum:', sum);
  if (sum > 9) {
    return superNumber(sum);
  }
  return sum;
}

let result = superNumber(148);
console.log('Ans: ', result);

Javascript相关问答推荐

单击子元素时关闭父元素(JS)

如何在RTK上设置轮询,每24小时

Phaser 3 console. log()特定游戏角色的瓷砖属性

在网页上添加谷歌亵渎词

MathJax可以导入本地HTML文档使用的JS文件吗?

使用GraphQL查询Uniswap的ETH价格

PDF工具包阿拉伯字体的反转数字

无法使用单击按钮时的useState将数据从一个页面传递到另一个页面

使用Java脚本导入gltf场景并创建边界框

我可以使用空手道用户界面来获取网页的当前滚动位置吗?

使用Google API无法进行Web抓取

对网格项目进行垂直排序不起作用

在HTML语言中调用外部JavaScript文件中的函数

无法设置RazorPay订阅API项目价格

P5.js中的分形树

在没有任何悬停或其他触发的情况下连续交换图像

如何在Web项目中同步语音合成和文本 colored颜色 更改

在点击链接后重定向至url之前暂停

将Windows XP转换为原始数据以在html前端中显示

使用Java脚本的响应页面