[英]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 创建的
table
的direction: 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
由于您正在渲染 HTML 使用
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>" + " ".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>" + " ".repeat(5-i) + "*".repeat(i) +"</td>"; } mytable += "</tr>"; document.write(mytable); } draw4();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.