【问题标题】:Compare function arguments in javascript比较javascript中的函数参数
【发布时间】:2018-12-02 06:00:53
【问题描述】:

我正在尝试为多个函数参数编写一个简单的比较语句,它绕过了错误。 tbh,我什至不确定我是否能够比较这些论点。

我尝试添加一个嵌套的 if 来提取错误,它返回未知异常。 (取消注释嵌套的 if 以查看行为)

var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
  if ((par || strokes) <= 0) {
    /*if (par) {
      return "Please enter a value greater than " + par + " for Par";
    }
    else if (strokes) { */
      return "Please enter a value greater than " + strokes + " for Strokes";
    }
  else if (strokes == 1) {
    return names[0];
  }
  else if (strokes <= (par - 2)) {
    return names[1];
  }
  else if (strokes == (par - 1)) {
    return names[2];
  }
  else if (strokes == (par)) {
    return names[3];
  }
  else if (strokes == (par + 1)) {
    return names[4];
  }
  else if (strokes == (par + 2)) {
    return names[5];
  }
    return names[6];
}

// Change these values to test
console.log(golfScore(0,1));console.log(golfScore(5,4));

【问题讨论】:

  • 如果您删除 cmets,您将缺少一个括号来关闭嵌套的 if 语句

标签: javascript function arguments compare


【解决方案1】:
((par || strokes) <= 0)

|| 使其评估parstroke 是否不是“假”数据类型(假、空、未定义)。基本上,您正在尝试将布尔值与数字进行比较。相反,您应该将每个变量与 0 进行比较

(par <= 0 || strokes <= 0)

【讨论】:

    猜你喜欢
    • 2018-03-26
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 2021-05-29
    • 2019-06-09
    • 1970-01-01
    相关资源
    最近更新 更多