JavaScript函数没有给出正确的输出

JavaScript function not giving the correct output

本文关键字:输出 函数 JavaScript      更新时间:2023-09-26

我有以下函数:

function checkWinner (results)
{ 
  for (var i = 0; i < results.length; i++)
  if (results[i] > 50)
  {
    var win = results[i];
    return win;
  }
  else if  (results[i] < 50)
  {
    var win = 0;
    return win;
  }
}

结果数组为:

var results = [12,32,53,12,23];

然而,当我期望53时,我得到了0。

我正在调用函数使用:

var win = (checkWinner(results));

当我从代码中删除else if语句时,我得到了53的正确答案。所以我想我做错了什么。什么好主意吗?

函数总是在值不为50的第一次迭代时从"for"循环返回。考虑一下:当值大于50时,你的"if"条件将从函数返回,当值小于50时也是如此。对于测试数据,数组的第一个元素小于50,因此得到0。

既然您已经发现删除"else"部分可以解决问题,那么您还需要什么呢?

如果您在调试器中或在纸上逐步检查代码,那么错误应该会变得清晰。

基本上,数组中的第一个元素导致else子句被执行,并且在该子句中您立即返回。所以函数只检查第一个元素

如果有人得了50分怎么办?第二个代码应该是else而不是else if

Main这是因为你显式返回0。

function checkWinner (results)
{ 
  for (var i = 0; i < results.length; i++)
  {
    if (results[i] > 50)
    {
      return results[i];
    }
    else
    {
      return results[i];
    }
  }
}