RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1601668
Accepted
user654927
user654927
Asked:2024-12-05 03:41:29 +0000 UTC2024-12-05 03:41:29 +0000 UTC 2024-12-05 03:41:29 +0000 UTC

使用嵌套循环,您需要打印从 1 到 50 的数字

  • 772

您需要使用嵌套的 for 循环打印五行中的数字才能得到结果:

01 02 03 04 05 06 07 08 09 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50

外循环打印换行符 br 并从 1 运行到 5。嵌套循环绘制从 1 到 10 的数字。我不明白该怎么做?您可能可以为每次迭代编写 if/else,但我认为这不是很正确。

let out10 = document.querySelector('.out-10');
let btn10 = document.querySelector('.b-10');

let cycleT10 = () => {
    for(let i = 1; i <= 5; i++){
        for(let k = 1; k <= 10; k++){
            if(k < 10){
                out10.innerHTML += '0' + String(k) + ' ';
                }
                else{
                    out10.innerHTML += k;
                };
            };
            out10.innerHTML += '<br>'
        };       
    };   
cycleT10();
javascript
  • 2 2 个回答
  • 45 Views

2 个回答

  • Voted
  1. Best Answer
    SwaD
    2024-12-05T04:12:23Z2024-12-05T04:12:23Z

    您可以使用内置的padStart字符串方法-​​ 它使用指定的模式将字符串从字符串开头填充到所需的字符数

    const container = document.getElementById('container');
    
    let cycleT10 = () => {
      let appendString = '';
      for (let i = 0; i < 5; i++) {
        for (let j = 1; j <= 10; j++) {
          appendString += `${10 * i + j} `.padStart(3, '0');
        }
        appendString += '<br />'
      }
      container.innerHTML = appendString;
    }
    cycleT10();
    <div id="container"></div>

    将文本插入 DOM 的逻辑也已更改。文本插入一次,而不是在嵌套循环的每次迭代时插入

    • 2
  2. stylok
    2024-12-05T10:56:17Z2024-12-05T10:56:17Z

    他们已经告诉过你了padStart()。所以我只给出一个简单的解决方案 - 在循环期间我们检查下一个数字是否是 10 的倍数if(i % 10 === 0)并添加进位。

    const container = document.querySelector('.container');
    for (let i = 1; i <= 50; i++) {
      container.innerHTML += i.toString().padStart(2, '0') + ' ';
      if (i % 10 === 0) {
        container.innerHTML += '<br>';
      }
    }
    <div class="container"></div>

    但是,您需要考虑到并非所有字体都同样美观、有用且等宽。因此,您可能需要向块添加样式font-family: monospace。但是您可以更进一步,最初创建一个块<pre></pre>,它实际上是为此目的而发明的,并使代码更加简单,无需任何<br>

    const container = document.querySelector('.container');
    for (let i = 1; i <= 50; i++) {
      container.textContent += i.toString().padStart(2, '0') + ' ';
      if (i % 10 === 0) container.textContent += '\n';
    }
    <pre class="container"></pre>

    正如您所看到的,我们没有用费用填充标签,而是.innerHTML切换到文本内容.textContent并选择作为换行符\n。

    如果你愿意,你可以走得更远,为了不阻塞不必要的字符:)完全放弃循环for以提高速度while:

    const container = document.querySelector('.container');
    let i = 1;
    while (i <= 50) {
      container.textContent += i.toString().padStart(2, '0') + ' ';
      if (i % 10 === 0) container.textContent += '\n';
      i++;
    }
    <pre class="container"></pre>

    • 1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5