【问题标题】:FizzBuzz range above 1 is not working高于 1 的 FizzBu​​zz 范围不起作用
【发布时间】:2016-02-23 14:14:56
【问题描述】:

我制作了一个函数来解决 Fizz Buzz 挑战。现在,用户可以填写6个变量。

名称而不是 Fizz 和 Buzz。范围(通常为 0 到 100)以及它应该检查哪些数字是否可整。

for(var i = rangeone; i < rangetwo ; i++){
    console.log(i)
    if(i % divisiontwo === 0 && i % divisionone === 0){
        endarray.push(bothwords)
    }else if(i % divisiontwo === 0){
        endarray.push(secondword)
    }else if(i % divisionone === 0){
        endarray.push(firstword)
    }else{
        endarray.push(i)
    }
}

Example

问题是。如果您填写范围,通常您将填写 0 到 100。如果您填写 1 到 100,它仍然可以工作..但是如果您填写 2 到 100(或 2+ 到 250 没关系),它没关系不再工作了。

我无法弄清楚为什么它没有。显然,如果 rangeone 高于 1 for(i = rangeone; i ,它甚至不会运行 for 循环

谁能给我解释一下?

提前致谢!

【问题讨论】:

  • 您使用的是字符串,而不是数字。 "2" 大于 "100",因此您的循环永远不会运行。
  • 好吧,首先,为什么要将字符串分配给 divisionx 变量?你在做数学,这意味着你应该分配数字......
  • 但为什么它适用于例如 0 和 100?现在有 2 和 100?如果它不接受字符串,那应该没有区别。对吗?
  • 错了。 一些 JavaScript 运算符会将您的字符串转换为数字,但不是全部(尤其不是比较运算符)。
  • 啊好吧。感谢您的评论。值得赞赏!我会对此进行一些研究。对这一切都是新手,有时会明确地查看简单的东西:D

标签: javascript fizzbuzz


【解决方案1】:

for (i = parseInt(rangeone); i &lt; parseInt(rangetwo); i++) {

将输入字符串转换为数字。

【讨论】:

  • 嗯好吧。这似乎解决了它。谢谢!然而,我仍然对我正在发送字符串这一事实感到惊讶……但它接受“1”和“2”作为范围
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 2018-07-18
  • 2012-11-04
  • 1970-01-01
相关资源
最近更新 更多