为什么 js 在递归中调用时,要加return,不然返回的就是undefined?

作者站长头像
站长
· 阅读数 9
const getRealItem: any = (tags: string[]) => {
  const size = tags.length;
  const chartLen = tags.join('').length;
  const MaxChartLen = 20 - (size - 1) * 2;
  if (MaxChartLen > chartLen) {
    return size;
  } else {
    // 不加return就返回undefined
    return getRealItem(tags.slice(0, size - 1));
  }
};

猜测试外部没有拿到值,但是不懂为什么外部函数没有拿到值呢?

回复
1个回答
avatar
test
2024-07-15

不加 return 就等效于

getRealItem(tags.slice(0, size - 1));
return;

自然等效返回 undefined

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容