【问题标题】:How to print star pattern in JavaScript in a very simple manner? [closed]如何以非常简单的方式在 JavaScript 中打印星形图案? [关闭]
【发布时间】:2021-05-07 18:20:41
【问题描述】:

我已经尝试了下面的代码,但它的输出不正确!

for(i=5;i>=1;i--) {
    for(j=i;j>=1;j--){
        console.log(j);
    }
        console.log("\n");
}

【问题讨论】:

  • 你能写出所需输出的样子吗?
  • 您可能想解释一下您所期待的“星型”是什么?
  • 什么类型的星形图案?
  • 5 4 3 2 1 4 3 2 1 3 2 1 2 1 1 此模式中的数字或星星(*)!!!!就像金字塔一样..

标签: javascript for-loop


【解决方案1】:

  for(var i=1; i<=4; i++){
       console.log("* ".repeat(i));
    }
/*
Output is: 
"*"
"* *"
"* * *"
"* * * *"
*/

【讨论】:

    【解决方案2】:
    for (var line = "#"; line.length < 8; line += "#")
    console.log(line);
    

    【讨论】:

      【解决方案3】:

        
      <html>
      
      <head>
      <script type="text/javascript">
       var i,j;
       for(i=1; i <= 5; i++)
       {
        for(j=1; j<=i; j++)
       {
         
         document.write('*');
        }
         document.write('<br />');
        }
          
      </script>
      </head>
      <body>
      </body>
      </html>

      【讨论】:

        【解决方案4】:

                    /** --------------
        
                            *
                           **
                          ***
                         ****
                        *****
                       ******
                      *******
                     ********
                    *********
        
        
                    ----------------*/
        
                    let y = 10;
                    let x = 10;
        
                    let str = "";
        
                    for(let i = 1; i < y; i++ ){
                        for(let j = 1; j < x; j++){
                            if(i + j >= y){
                                str = str.concat("*");
                            }else{
                                str = str.concat(" ")
                            }
                        }
                        str = str.concat("\n")
                    }
        
                    console.log(str)
        
        
                    /**_______________________
        
        
        
                    *********
                     ********
                      *******
                       ******
                        *****
                         ****
                          ***
                           **
                            *
        
        
                     _______________________*/
        
                    let str2 = "";
        
                    for(let i = 1; i < y; i++ ){
                        for(let j = 1; j < x; j++){
                            if(i <= j ){
                                str2 = str2.concat("*");
                            }else{
                                str2 = str2.concat(" ")
                            }
                        }
                        str2 = str2.concat("\n")
                    }
        
                    console.log(str2)
        
        
                    /**----------------------
        
        
                    *
                    **
                    ***
                    ****
                    *****
                    ******
                    *******
                    ********
        
        
                     -------------------------*/
        
        
                    let str3 = "";
        
                    for(let i = 1; i < y; i++ ){
                        for(let j = 1; j < x; j++){
                            if(i >= j ){
                                str3 = str3.concat("*");
                            }
                        }
                        str3 = str3.concat("\n")
                    }
        
                    console.log(str3)
        
                    /**-------------------------
        
        
                     *********
                     ********
                     *******
                     ******
                     *****
                     ****
                     ***
                     **
                     *
        
                     ---------------------------*/
                    let str4 = "";
        
                    for(let i = 1; i < y; i++ ){
                        for(let j = 1; j < x; j++){
                            if( j >= i ){
                                str4 = str4.concat("*");
                            }
                        }
                        str4 = str4.concat("\n")
                    }
        
                    console.log(str4)
        
                    /**--------------------
                     Diamond of Asterisks
        
                         *
                        ***
                       *****
                      *******
                     *********
                      *******
                       *****
                        ***
                         *
        
        
                     ---------------------*/
        
                    let str5 = "";
        
                    for(let i = 1; i < y; i++ ){
                        for(let j = 1; j < x; j++){
                            if(i <= y / 2 && j >= (y / 2) - (i - 1) && j <= (y / 2) + (i - 1) ){
                                str5 = str5.concat("*");
                            }else if(i >= y / 2
                              && j > ((y / 2) -  i) * (-1)
                              && j < (y - ((y / 2) -  i) * (-1))){
                                str5 = str5.concat("*");
                            }
                            else {
                                str5 = str5.concat(" ");
                            }
                        }
                        str5 = str5.concat("\n");
                    }
        
                    console.log(str5)

        【讨论】:

          【解决方案5】:

          这是我遇到的最简单的解决方案,只使用了一个 for 循环。

          var a = '';
          var n = 5;
          var m = (n-1); 
          for(i=1; i <= n; i++)
          {
              a = a.trim();
              a = ' '.repeat(m) + a + (i > 1 ? ' ' : '') + '*';
              console.log(a);
              m--;
          }
          

          输出:

          /**------------------------
          
          
              *
             * *
            * * *
           * * * *
          * * * * *
          
          ---------------------------*/
          

          【讨论】:

            【解决方案6】:

            for (var i = 7; i >= 1; i--) {
              var str = "";
              for (var j = i; j <= 7; j++) {
              str += "*";
                 }
             console.log(str);
            }
            // This is example
            
            // You can do this with any string and without using the function. 

            【讨论】:

              【解决方案7】:

              很简单,试试下面的代码:

              for(var i = 1; i <= 5; i++) {
              
                    for(var j = 1; j<= i; j++) {
              
                      document.write("*");  
              
                    }
              
                    document.write("<br/>");
              }
              

              【讨论】:

                【解决方案8】:

                for (let i = 1; i <= 5; i++) {
                    for (let j = 1; j <= i; j++) {
                        document.write('*');
                    }
                    document.write('<br />');
                }

                【讨论】:

                  【解决方案9】:

                  据我了解,您实际上是在尝试打印 stair 模式而不是 star

                  您的主要错误在于 console.log 函数每次都在下一行打印。

                  for (var i = 5; i >= 1; i--) {
                      var str = "";
                      for (var j = i; j >= 1; j--) str += j;
                      console.log(str);
                  }
                  

                  JSFiddle 为您服务:http://jsfiddle.net/99wL8cbt/2/

                  【讨论】:

                    【解决方案10】:

                    试试看

                    **你的金字塔会像下面这样:**

                    4 3 2 1
                     3 2 1
                      2 1
                       1
                    
                    function stars(n){
                        var str = '';
                        for(var i=n; i>=1; i--){
                            for(var k=n; k>=i; k--){
                                str += "\t";
                            }
                            for(var j=i; j>=1; j--){
                                str += j+"\t\t";
                            }
                            console.log(str);
                            str = "";
                        }
                    }
                    stars(3);
                    

                    你的金字塔会像这样向上:

                      *
                     * *
                    * * *
                    
                    function stars(n){
                        var str = '';
                        for(var i=1; i<=n; i++){
                            for(var k=1; k<=n-i; k++){
                                str += "\t";
                            }
                            for(var j=1; j<=i; j++){
                                str += "*\t\t";
                            }
                            console.log(str);
                            str = "";
                        }
                    }
                    stars(3);
                    

                    【讨论】:

                      【解决方案11】:
                      function pyramid(n) {
                      
                          for(i=1 ;i<=n;i++) {
                      
                              let str = ' '.repeat(n-i);
                              let str2 = '*'.repeat(i*2-1);
                          console.log(str + str2 + str);
                          }
                      }
                      
                      pyramid(5)
                      

                      【讨论】:

                        【解决方案12】:

                        每次调用时,日志都会输出到一个新行,如果它相同,则在 chrome 中它只会保留一个计数(不确定其他浏览器)。您想收集每行的星数,然后在内部循环运行后输出

                        for (var i = 5; i >= 1; i--) {
                             var ouput = "";
                             for (var j = i; j >= 1; j--) {
                                 ouput += "*"
                             }
                             console.log(ouput);
                         }

                        【讨论】:

                          【解决方案13】:

                          试试这个。也许它会为你工作:

                          <html>
                          <head>
                          <script type="text/javascript">
                              var i, j;
                              //outer loop
                              for(i = 0;i < 5; i++){
                                //inner loop
                                for(j = 0;j <= i; j++){
                                  document.write('*');
                                }
                                document.write('<br/>');
                             }
                          </script>
                          </head>
                          <body>
                          </body>
                          </html>
                          

                          【讨论】:

                            【解决方案14】:

                            for(i=0;i<=5;i++)
                            {
                                for(j=0;j<=i;j++)
                                {
                                    document.write('*');
                                }
                                document.write('<br>')
                            }

                            【讨论】:

                            • 这或多或少只是对现有答案的重复。
                            • 你忘记声明变量了。
                            【解决方案15】:
                            <!DOCTYPE html>
                            <html>
                                <head>
                            
                                </head>
                                <body>
                                    <p id="test"></p>
                                </body>
                                <script>
                                    //Declare Variable
                                    var i;
                                    for(i = 0; i <= 5; i++){
                                        document.write('*'.repeat(i).concat("<br>"))
                                    }
                                </script>
                            </html>
                            

                            【讨论】:

                              【解决方案16】:
                              <!DOCTYPE html>
                              <html>
                                  <head>
                                  <script>
                                      //Declare Variable
                                      var i,j;
                              
                                      //First Way
                                      for(i = 5; i >= 0; i--){
                                          for(j = 0; j <= i; j++){
                                              document.write('*');
                                          }
                                          document.write('<br>');
                                      }
                                      //Second Way
                                      for(i = 5; i >= 0; i--){
                                          document.write('*'.repeat(i).concat('<br>'))
                                      }
                                  </script>
                                  </head>
                                  <body>
                                  </body>
                              </html>
                              

                              【讨论】:

                                【解决方案17】:
                                for(var a=1;a<8;a++){   
                                    var o="";  
                                    for(var b=1;b<=a;b++){  
                                        o +="#";    
                                    }   
                                    debug(o);   
                                }
                                

                                试试上面的代码。

                                输出:

                                --> #
                                --> ##
                                --> ###
                                --> ####
                                --> #####
                                --> ######
                                

                                【讨论】:

                                  【解决方案18】:

                                  下面的代码对我有用

                                  for(i= 0; i< n; i++){
                                  
                                     col = i;
                                     for(j = 0; j< n- col;j++){
                                         process.stdout.write('');
                                     }
                                     for (j = 1;j< col+2;j ++){
                                         process.stdout.write('#');
                                     }
                                     process.stdout.write('\n');
                                  }
                                  

                                  【讨论】:

                                    【解决方案19】:
                                    <html>
                                    <head>
                                    <script>
                                        //Declare Variable
                                        var i, j;
                                        //outer loop
                                        for(i = 0; i <= 25; i++){
                                        //inner loop
                                        for(j = 0; j <= i; j++){
                                        document.write("*");
                                        }
                                        document.write('<br>');
                                        }
                                    </script>
                                    </head>
                                    <body>
                                    </body>
                                    </html>
                                    
                                    <!-- end snippet -->
                                    

                                    【讨论】:

                                      【解决方案20】:

                                      这是javascript while循环中的解决方案:

                                      > var i = 0, out = '';
                                      >  while( i <= 4)
                                      >     {
                                      >       out = out + '* ';
                                      >       document.write('<br> '+ out);
                                      >       i++;
                                      >     } 
                                      >  
                                      > document.write('<br>');
                                      

                                      【讨论】:

                                        【解决方案21】:

                                        在javascript中试试这个菱形图案

                                        <head>
                                         <style>
                                            p{text-align:center;margin-left:20px;}
                                         </style>
                                        </head>
                                        
                                        <body>
                                           <h1>JavaScript patterns</h1>
                                           <p id="demo"></p>
                                        
                                        <script>
                                          var x=function(n){
                                            document.write("<center>");
                                        
                                          var c="";
                                            for(var i=0; i<n; i++){
                                              c=c+"#";
                                              document.write(c);
                                              document.write("<br>");  
                                           }
                                        
                                            for(var k=n;k>0;k--){
                                              for(var j=0; j<(k-1); j++){
                                               document.write("#");
                                              } 
                                            document.write("<br>");
                                           }   
                                          }
                                             document.getElementById("demo").innerHTML = x(10);
                                        
                                        </script>
                                        

                                        【讨论】:

                                          【解决方案22】:

                                          你可以试试这个

                                           var x, y, space = "",
                                              star = "",
                                              n = 4,
                                              m = n - 1;
                                          for (x = 1; x <= n; x++) {
                                              for (y = m; y >= 1; y--) {
                                                  space = space + (" ");
                                              }
                                              m--;
                                              for (let k = 1; k <= x * 2 - 1; k++) {
                                                  star = star + "*"
                                              }
                                              console.log(space + star)
                                              space = '';
                                              star = "";
                                          }
                                          

                                          【讨论】:

                                            猜你喜欢
                                            • 2018-06-28
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 1970-01-01
                                            • 2021-11-04
                                            • 2022-06-22
                                            • 2014-12-08
                                            相关资源
                                            最近更新 更多