首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表- Basic中的Javascript乘法器

表- Basic中的Javascript乘法器
EN

Stack Overflow用户
提问于 2014-02-10 18:18:39
回答 1查看 196关注 0票数 1

我是JavaScript的新手。我想在Javascript中做一个乘子,用prompt()得到数字n,这是我们的乘法器,我想用n数乘以从1到n的所有数。示例:

如果是n=4

然后,为了获得奖金,消除所有相同的产品,因此我们认为2_3 = 3_2,它应该如下所示:

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

代码语言:javascript
复制
// 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();
}

我可能做错了什么,你能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-10 19:00:40

首先,您可以调用函数而不将结果分配给任何东西。由于您没有通过script0通过script12进行任何操作,所以最好完全将它们排除在外。我们来修一下压痕。

代码语言:javascript
复制
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();
}

运行此操作,表仅为一列宽。这是有意义的,因为您只在每个tr中编写一个tr。如果你取消了中间部分的注释,你就会得到你想要的方形。

代码语言:javascript
复制
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();
}

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

代码语言:javascript
复制
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();
}

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

代码语言:javascript
复制
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();
}

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

代码语言:javascript
复制
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();
}

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

代码语言:javascript
复制
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();
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21684935

复制
相关文章

相似问题

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