表中的Javascript乘数 - 基本

时间:2014-02-10 18:18:39

标签: javascript math javascript-events

我是JavaScript的新手。我想在javascript中使用prompt()来得到数字n的乘数,这是我们的乘数,我想将所有数字从1加到n与n数。 例如:

如果n = 4

然后奖金消除所有相同的产品,所以我们认为2 * 3 = 3 * 2,它应该看起来像这样:

所以,我的代码到目前为止:

// JavaScript Document

function TableOn() { document.write('<table border="1">'); }
function TableOff() { document.write('</table>') }
function TrOn() { document.write('<tr>'); }
function TrOff() { document.write('</tr>'); }
function TdOn() { document.write('<td>'); }
function TdOff() { document.write('</td>'); }
function Izvrsi() {
    var n;
    n = prompt('Insert the multiplayer (n)');
    script0 = TableOn();
    for (var i = 0; i <= n; i++) {
        script1 = TrOn();
        /*for(var j=0;j<=n;j++)
            {
                script2 = TdOn();
                document.write(j * n + ' ');
                script6 = TdOff();
            }*/
        script2 = TdOn();
        document.write(i + ' ');
        script3 = TdOff();
        script4 = TrOff();
    }
    for (var j = 0; j <= n; j++) {
        script11 = TrOn();
        script2 = TdOn();
        document.write(j * n + ' ');
        script6 = TdOff();
        script12 = TrOff();
    }
    script5 = TableOff();
}

我可能没有做对,你们可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

首先,您可以在不将结果分配给任何内容的情况下调用函数。由于你没有通过script12对script0做任何事情,你也可以完全抛弃它们。让我们在我们处理它的时候修复缩进。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();
    for(var i=0;i<=n;i++)
    {
        TrOn();
        /*for(var j=0;j<=n;j++)
        {
            TdOn();
            document.write(j * n + ' ');
            TdOff();
        }*/
        TdOn();
        document.write(i + ' ');
        TdOff();
        TrOff();
    }
    for(var j=0;j<=n;j++)
    {
        TrOn();
        TdOn();
        document.write(j * n + ' ');
        TdOff();
        TrOff();
    }
    TableOff();
}

enter image description here

运行此表,该表只有一列宽。这是有道理的,因为你只在每个td内写了一个tr。如果取消注释中间部分,您将获得所需的方形。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();
    for(var i=0;i<=n;i++)
    {
        TrOn();
        for(var j=0;j<=n;j++)
        {
            TdOn();
            document.write(j * n + ' ');
            TdOff();
        }
        TdOn();
        document.write(i + ' ');
        TdOff();
        TrOff();
    }
    for(var j=0;j<=n;j++)
    {
        TrOn();
        TdOn();
        document.write(j * n + ' ');
        TdOff();
        TrOff();
    }

    TableOff();
}

enter image description here

数字看起来不正确,因为您正在编写j * n,即当前列的索引,乘以最大倍数。相反,写j * i,即当前列乘以当前行。在我们处理它时,让我们删除第二个for块,因为它只是在最后添加了一列垃圾。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();
    for(var i=0;i<=n;i++)
    {
        TrOn();
        for(var j=0;j<=n;j++)
        {
            TdOn();
            document.write(j * i + ' ');
            TdOff();
        }
        TdOn();
        document.write(i + ' ');
        TdOff();
        TrOff();
    }

    TableOff();
}

enter image description here

这看起来不错,除了表从0开始而不是1,行号出现在右边而不是左边。将document.write(i + ' ');移动到for循环的前面,并将初始i和j值更改为1.

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();
    for(var i=1;i<=n;i++)
    {
        TrOn();
        TdOn();
        document.write(i + ' ');
        TdOff();
        for(var j=1;j<=n;j++)
        {
            TdOn();
            document.write(j * i + ' ');
            TdOff();
        }
        TrOff();
    }

    TableOff();
}

enter image description here

您需要一个单独的循环来创建列号。相当简单 - 只需写一个空格和1到n的数字。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();

    //create column numbers
    TrOn();
    TdOn(); document.write(' '); TdOff();
    for(var i=1;i<=n;i++){
        TdOn(); document.write(i + ' '); TdOff();
    }
    TrOff();

    for(var i=1;i<=n;i++)
    {
        TrOn();
        TdOn();
        document.write(i + ' ');
        TdOff();
        for(var j=1;j<=n;j++)
        {
            TdOn();
            document.write(j * i + ' ');
            TdOff();
        }
        TrOff();
    }

    TableOff();
}

enter image description here

最后,您可以通过在for(var j...循环中执行检查来消除重复的产品。如果我小于j,那么不要费心写任何东西。

function Izvrsi()
{
    var n;
    n=prompt('Insert the multiplayer (n)');
    TableOn();

    //create column numbers
    TrOn();
    TdOn(); document.write(' '); TdOff();
    for(var i=1;i<=n;i++){
        TdOn(); document.write(i + ' '); TdOff();
    }
    TrOff();

    for(var i=1;i<=n;i++)
    {
        TrOn();
        TdOn();
        document.write(i + ' ');
        TdOff();
        for(var j=1;j<=n;j++)
        {
            TdOn();
            if (i < j){
                document.write(' ');
            }
            else{
                document.write(j * i + ' ');
            }
            TdOff();
        }
        TrOff();
    }

    TableOff();
}

enter image description here