首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript“超级”fizzbuzz

Javascript“超级”fizzbuzz
EN

Stack Overflow用户
提问于 2015-05-18 10:00:17
回答 3查看 887关注 0票数 0

因此,我正在尝试JS中的good ole 'FizzBuzz‘挑战。然而,我正在尝试添加它,因为我能够完成第一个挑战。对于那些不熟悉“FizzBuzz”挑战的人。最初,您希望打印数字1..100,可被3整除的数字打印单词Fizz而不是3;可被5 => Buzz整除的数字;以及可被两个=> FizzBuzz整除的数字。我要做的是创建一个接受数组的函数,并返回包含适当字符串的数组。例如:

代码语言:javascript
运行
复制
function super_fizzbuzz(array){
    var super_array = [];

    for (var array=1; array<=array.length; array++)
    {
        if (array % 15 == 0)
            super_array.push("FizzBuzz");
        else if (array % 5 == 0)
            super_array.push("Buzz");
        else if (array % 3 == 0)
            super_array.push("Fizz");
        else
            super_array.push(array);
    }
    return super_array;
    }

    console.log(super_fizzbuzz([3,10,15,19]));

因此,理想情况下,答案应该返回["Fizz", "Buzz", "FizzBuzz", 19],但它只是返回一个空数组。我刚刚在Ruby中做了这件事,并且我能够让它工作,没有问题。尝试将我的ruby技能转化为实践JS,并让自己更熟悉它。任何建议都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2015-05-18 10:08:20

您的array试图既是数组又是它的索引。一旦为array = 1,则array.lengthundefined1 <= undefinedfalse;循环甚至在开始之前就结束了。super_array保持其起始值[]

重命名您的循环变量。此外,数组从0开始,而不是1,并在< array.length结束,而不是<=

票数 3
EN

Stack Overflow用户

发布于 2015-05-18 10:06:50

这里:

代码语言:javascript
运行
复制
for (var array = 1; array <= array.length; array++)

通过将1赋值给函数参数,您已经覆盖了该参数的值,称为“数组”。数字没有.length属性,所以循环不会执行任何一次迭代。

如果要遍历传入的数组中的值,请使用索引变量(一个与数组参数的索引名称不同的索引变量),然后使用它来访问元素:

代码语言:javascript
运行
复制
  for (var i = 0; i < array.length; i++) {
      if (array[i] % 15 == 0)
          super_array.push("FizzBuzz");
      // etc
票数 2
EN

Stack Overflow用户

发布于 2015-05-18 10:07:25

在这里你可以去

代码语言:javascript
运行
复制
function super_fizzbuzz(array){
          var super_array = [];

          for (var i=0; i<=array.length-1; i++)
          {
              if (array[i] % 15 == 0)
                  super_array.push("FizzBuzz");
              else if (array[i] % 5 == 0)
                  super_array.push("Buzz");
              else if (array[i] % 3 == 0)
                  super_array.push("Fizz");
              else
                  super_array.push(array[i]);
          }
          return super_array;
          }

          console.log(super_fizzbuzz([3,10,15,19]));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30294085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档