【问题标题】:Javascript for loop console print in one line循环控制台打印的Javascript在一行中
【发布时间】:2016-01-10 10:34:37
【问题描述】:

我正在尝试从我的 for 循环中获取输出以在控制台中的一行中打印。

for(var i = 1; i < 11; i += 1) {
    console.log(i);
}

现在是

1
2
3
4
5
6
7
8
9
10

如何在一行中获得所有输出(像这样 1 2 3 4 5 6 7 8 9 10)?

【问题讨论】:

  • 只需分配给一个变量并注销您的 var !而不是console.log(i); 只是做myvar = myvar + '' + i; 和你的循环结束console.log(myvar);

标签: javascript loops for-loop printing console


【解决方案1】:

构建一个字符串,然后在循环之后记录它。

var s = "";
for(var i = 1; i < 11; i += 1) {
  s += i + " ";
}
console.log(s);

【讨论】:

    【解决方案2】:

    在 Node.js 中你也可以使用命令:

    process.stdout.write()

    这将允许您避免将填充变量添加到您的范围,而只需打印 for 循环中的每个项目。

    【讨论】:

    • 尝试解释此解决方案与现有解决方案有何不同,以及如何更有帮助
    • 我可以想到两种可能有帮助的主要情况:1)当行中间的代码可能引发错误时,您仍然想确保会有部分输出; 2)当需要大量计算资源来计算结果时,您希望确保不时向用户提供一些反馈,而不会导致控制台打印新行。
    【解决方案3】:

    没问题,只需将它们连接到一行即可:

    var result  = '';
    for(var i = 1; i < 11; i += 1) {
      result = result + i;
    }
    console.log(result)

    或更好,

    console.log(Array.apply(null, {length: 10}).map(function(el, index){
       return index;
    }).join(' '));

    继续学习! 祝你好运!

    【讨论】:

      【解决方案4】:

      还有另一种方法可以在单行中打印计数器,console.log() 在没有指定的情况下放置尾随换行符,我们不能省略它。

      let str = '',i=1;
      while(i<=10){
          str += i+'';
          i += 1;
      }
      
      console.log(str);

      【讨论】:

        【解决方案5】:
        // 1 to n
        const n = 10;
        
        // create new array with numbers 0 to n
        // remove skip first element (0) using splice
        // join all the numbers (separated by space)
        const stringOfNumbers = [...Array(n+1).keys()].splice(1).join(' ');
        
        // output the result
        console.log(stringOfNumbers);
        

        【讨论】:

          【解决方案6】:
          let n=0;
          
          for ( i = 1; i <= 10; i++)
              {
                n += i + “ “;
                console.log(n);
          }
          

          【讨论】:

            【解决方案7】:

            或者,要在单行中打印,您可以在 Javascript 中使用 repeat-

            for(let j = 0; j < 5; j++){
                console.log('*'.repeat(j))    
            }
            

            【讨论】:

              【解决方案8】:

              我们可以使用process.stdout.write() 方法打印到控制台,而无需尾随换行符。它只接受字符串作为参数,但在这种情况下,i + " " 是一个字符串,所以它可以工作:

              for (var i = 1; i < 11; i += 1) {
                process.stdout.write(i + " ");
              }
              

              注意:它只适用于 Node.js。

              【讨论】:

              猜你喜欢
              • 2023-02-06
              • 2013-05-25
              • 2015-09-03
              • 2015-11-28
              • 1970-01-01
              • 2012-08-18
              • 1970-01-01
              • 1970-01-01
              • 2013-03-18
              相关资源
              最近更新 更多