在JavaScript中编写1-80并为某些倍数写入文本

时间:2013-06-15 10:14:55

标签: javascript

我正在学习JavaScript,我正在制作一个有趣的网页。在网页中,我想制作一个脚本,写入数字1到80,在这些数字中写入text1为3的倍数,5的写入文本2的倍数和3和5的倍数写入15。

请告诉我如何去做这件事?

由于

编辑:

是的我有一个我正在玩的脚本,但无法让它工作:

function myFunction()
{
var x="";
for (var i=1;i<81;i++)
  {
  x=x + i + "<br>";
  }
document.getElementById("Eighty").innerHTML=x;

if (i=i*3)
  {
  x="text";
  }
document.getElementById("Eighty").innerHTML=x;
}

}

3 个答案:

答案 0 :(得分:1)

您的问题实际上是Fizz Buzz test。找出倍数通常是通过找到余数来完成的。请记住:

nominator / denominator = quotient + (remainder / denominator)

examples:
2 / 2 = 1 + ( 0 / 2 )
3 / 2 = 1 + ( 1 / 2 )
4 / 2 = 2 + ( 0 / 2 )

模数运算符定义为查找余数:

nominator mod denominator = remainder

from the examples above:
2 mod 2 = 0
3 mod 2 = 1
4 mod 2 = 0

请注意, 2的倍数的余数为0 。同样的事情还有3:

1 mod 3 = 1  --  1 / 3 = 0 + ( 1 / 3 )
2 mod 3 = 2  --  2 / 3 = 0 + ( 2 / 3 )
3 mod 3 = 0  --  3 / 3 = 1 + ( 0 / 3 )
4 mod 3 = 1  --  4 / 3 = 1 + ( 1 / 3 )
5 mod 3 = 2  --  5 / 3 = 1 + ( 2 / 3 )
6 mod 3 = 0  --  6 / 3 = 2 + ( 0 / 3 )

在Javascript中查找多个元素的最简单方法是使用remainder (modulus) operator

0 % 2; // = 0
1 % 2; // = 1
2 % 2; // = 0 because 2 is divisible with 2
3 % 2; // = 1
4 % 2; // = 0 because 4 is divisible with 2

如果使用运算符查找余数,则可以对3和5执行相同操作。如果结果为0则它可以被整除,因此是所讨论数字的倍数。

像往常一样;重复使用for-loop的一组整数,然后使用if-statements控制循环内的流程。

这是jsFiddle to get you started

答案 1 :(得分:0)

您可以使用模数运算符%检查数字是否可被其他数字整除。

c = a % b;

此运算符返回除法a / b的余数。如果该余数为零,则ab的倍数。

答案 2 :(得分:0)

如果我理解你的要求,我认为你正在寻找这样的事情:

function myFunction(){
    var x="";
    for (var i=1;i<81;i++){
        var a = '';
        if (i%3 == 0 && i%5 != 0) a="text1";
        else if (i%5 != 0 && i%5 == 0) a="text2";
        else if (i%3 == 0 && i%5 == 0) a="text3";
        x=(a == '')? (x + i + "<br>"): (x + a + "<br>");
    }
    document.getElementById("Eighty").innerHTML=x;
}

请告诉我。