JS打印正三角,反三角,等腰三角以及方块

<script>
   /*打印乘法口诀表*/
   /*打印任意一行的公式*/
   //i从1开始,到<=r结束,每次+1,同时声明空数组arr
   for(var r=1;r<=9;r++){//r从?开始,到?结束,每次+
    //公式
      for(var i=1,arr=[];i<=r;i++){
        // 拼接ixr=(i*r),压入arr中
          arr.push(i+"x"+r+"="+(i*r));
     }//(循环结束)输出arr以空格连接后的结果
      console.log(arr.join(" "));
   }
   /*正三角*/
   //打印任意一行的公式
   //i从0开始,到<r结束,每次+1,同时声明空数组arr
   function zheng(lines){//lines表示打印的总行数
    //r从1开始,到<=lines结束,r每次+1
      for(var r=1;r<=lines;r++){
        // 公式
          for(var i=0,arr=[];i<r;i++){
           arr.push("*");// 将1个"*",压入arr
        }//(循环结束)输出arr无缝拼接的结果
          console.log(arr.join(""));
     }
   }
   zheng(6);
   /*反三角*/
   /*打印第r行公式*/
   //i从0开始,到<lines结束,每次+1,同时声明空arr
   function fan(lines){
    //反复调用打印r行的公式,r从1开始,到<=lines结束,每次+1
      for(var r=1;r<=lines;r++){
         // 公式
           for(var i=0,arr=[];i<lines;i++){
            // 如果i<lines-r,就压入空格,否则压入*
            arr.push(i<(lines-r)?" ":"*");
         }//(循环结束)输出arr无缝拼接的结果
           console.log(arr.join(""));
      }
   }
   fan(6);
   /*等腰三角
   /*打印第r行的公式
   //i从0开始,到<lines+r-1结束,每次+1,声明空arr
   for(var i=0,arr=[];i<lines+r-1;i++){
   // 如果i<lines-r,就压入空格,否则压入*
    arr.push(i<(lines-r)?" ":"*");
   }//(循环结束)输出arr无缝拼接的结果
   console.log(arr.join(""));*/
   function dengyao(lines){
      //r从1开始,到<=lines结束,每次+1
      for(var r=1;r<=lines;r++){
         // 公式
          for(var i=0,arr=[];i<lines+r-1;i++){
           arr.push(i<(lines-r)?" ":"*");
        }
        console.log(arr.join(""));
      }
   }
   dengyao(6);
   /*打印方片*/
   //   var lines=9;
   //   var r=2; //中间一样开始的第2行
   //   /*打印下半截第r行的公式
   //   //i从0,到<lines-r结束,声明空数组arr*/
   //   for(var i=0,arr=[];i<lines-r;i++){
   //   //   如果i<r-1时,就压入空格,否则压入*
   //    arr.push(i<r?" ":"*");
   //   }//(循环结束)输出arr无缝拼接后的结果
   //   console.log(arr.join(""));
   function fangpian(lines){
     var strs=[];//暂存每行的字符串
      //r从0开始,到<=(lines+1)/2结束,每次+1
     for(var r=0;r<(lines+1)/2;r++){
        // 公式
         for(var i=0,arr=[];i<lines-r;i++){
          arr.push(i<r?" ":"*");
       }
       strs.push(arr.join(""));//把下半部一行压入数组
        r>0&&strs.unshift(arr.join(""));//把除了中间行的下半部压入数组的前部
     }
     console.log(strs.join("\n"));
   }
   fangpian(9);
  </script>

你可能感兴趣的:(JS打印正三角,反三角,等腰三角以及方块)