简体   繁体   English

用 JS HTML 从右到左画一个倒三角形

[英]Draw an inverted right triangle from right to left with JS HTML

I am trying to draw the 3rd and 4th triangle in the following picture with JS in HTML.我正在尝试使用 HTML 中的 JS 在下图中绘制第三和第四个三角形。 I made two functions for the first two triangles, and I think I just need to twist the for loops a little bit for the 3rd and 4th ones but I don't know how to do it.我为前两个三角形制作了两个函数,我想我只需要为第三个和第四个三角形稍微扭转一下 for 循环,但我不知道该怎么做。 Here are the codes for the first two ones.这是前两个的代码。

在此处输入图像描述

 function draw1() { let mytable = "<table>" for (let i = 1; i < 6; i++) { mytable += "<tr>"; mytable += "<td>" + "*".repeat(i) +"</td>"; } mytable += "</tr>" document.write(mytable) } draw1() function draw2() { let mytable = "<table>" for (let i = 5; i > 0; i--) { mytable += "<tr>"; mytable += "<td>" + "*".repeat(i) +"</td>"; } mytable += "</tr>" document.write(mytable); } draw2()

In order to rotate your * arrows, you don't have to redo the js.为了旋转*箭头,您不必重做 js。 You can simply use the css direction: rtl rule for the table that your js creates.您可以简单地使用 css 方向:您的 js 创建的tabledirection: rtl规则。 Like this:像这样:

table {
  direction: rtl;
}

 function draw1() { let mytable = "<table>" for (let i = 1; i < 6; i++) { mytable += "<tr>"; mytable += "<td>" + "*".repeat(i) +"</td>"; } mytable += "</tr>" document.write(mytable); } draw1(); function draw2() { let mytable = "<table>" for (let i = 5; i > 0; i--) { mytable += "<tr>"; mytable += "<td>" + "*".repeat(i) +"</td>"; } mytable += "</tr>" document.write(mytable); } draw2();
 table { direction: rtl; }

Use the code below to create the pattern.使用下面的代码来创建模式。 reference 参考

 let n = 5; // you can take input from prompt or change the value let string = ""; for (let i = 1; i <= n; i++) { // printing spaces for (let j = 0; j < n - i; j++) { string += " "; } // printing star for (let k = 0; k < i; k++) { string += "*"; } string += "\n"; } console.log(string);

Here is code for the second pattern.这是第二种模式的代码。 reference 参考

 let n = 5; // you can take input from prompt or change the value let string = ""; for (let i = 0; i < n; i++) { // printing star for (let k = 0; k < n - i; k++) { string += "*"; } string += "\n"; } console.log(string);

You need add spaces before you add *.您需要在添加 * 之前添加空格。 Since you are rendering HTML use &nbsp;由于您正在渲染 HTML 使用&nbsp; for space character.为空格字符。 Use 2 of them to appropriately cover area in loop.使用其中 2 个来适当地覆盖循环区域。

 function draw1() { let mytable = "<table>"; for (let i = 1; i < 6; i++) { mytable += "<tr>"; mytable += "<td>" + "*".repeat(i) +"</td>"; } mytable += "</tr>"; document.write(mytable); } draw1() function draw2() { let mytable = "<table>"; for (let i = 5; i > 0; i--) { mytable += "<tr>"; mytable += "<td>" + "*".repeat(i) +"</td>"; } mytable += "</tr>"; document.write(mytable); } draw2(); function draw3() { let mytable = "<table>"; for (let i = 1; i < 6; i++) { mytable += "<tr>"; mytable += "<td>" + "&nbsp;&nbsp;".repeat(5-i) + "*".repeat(i) +"</td>"; } mytable += "</tr>"; document.write(mytable); } draw3(); function draw4() { let mytable = "<table>"; for (let i = 5; i > 0; i--) { mytable += "<tr>"; mytable += "<td>" + "&nbsp;&nbsp;".repeat(5-i) + "*".repeat(i) +"</td>"; } mytable += "</tr>"; document.write(mytable); } draw4();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM