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

本文展示了如何使用JavaScript代码实现打印乘法口诀表,以及绘制正三角形、倒三角形、等腰三角形和方块。通过循环和数组操作,将星号(*)或空格组合成各种几何形状。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值