【问题标题】:Why is return coming back as undefined? [duplicate]为什么返回未定义? [复制]
【发布时间】:2018-07-11 11:08:11
【问题描述】:

在我编写的这段代码中,y 以未定义的形式返回。我到处寻找我能想到的地方,以找出我做错了什么,但据我所知,它的写法是正确的。它应该以 00085 的形式返回。

function ab()
{
  var x = 85 + '';
  var y = AddCorrect(x);
}

function AddCorrect(add)
{
  if (add.length < 5)
  {
    var corrected = '0' + add;
    AddCorrect(corrected);
  }
  else
  {
    return add;
  }
}

【问题讨论】:

  • return AddCorrect(corrected);
  • 好吧,我想这是有道理的。如果重复,我应该删除它吗?

标签: javascript return


【解决方案1】:

您传递了一个数字,但您的函数需要一个字符串(您正在检查add.length)。您还必须在if (add.length &lt; 5) 中返回一些内容:

function ab()
{
  var x = 85;
  var y = AddCorrect(x);   // <-- x is a number
  console.log(y);
}

function AddCorrect(add)
{
  add = '' + add;     // <--- Convert the number to string
  
  if (add.length < 5)  // <--- so you can check the length
  {
    var corrected = '0' + add;
    return AddCorrect(corrected); // <--- return here
  }
  else
  {
    return add;
  }
}

ab();

【讨论】:

    猜你喜欢
    • 2018-10-15
    • 2016-09-24
    • 2021-10-19
    • 2022-01-16
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多