I'm working on a project where I'd like to create the following pattern:
X
XX
XXX
XXXX
.. and so forth. There are twenty rows in all, and the twentieth row should have 20 X's. Here is what I came up with that's so close:
<!DOCTYPE html>
<html>
<body>
<button type="button" onclick="xloop();">Accept</button> <br>
<p id="xloops"></p>
<script>
function xloop() {
let text = "";
for (j=2; j<=20; j++) {
text+= ("X") + ("<br>");
for (k=1; k<j; k++) {
text += ("X");
}
}
document.getElementById("xloops").innerHTML = text;
}
</script>
</body>
</html>
The pattern begins appropriately and does what I want until the very last row. The 20th row only has 19 elements in it, rather than the necessary 20. I have a feeling that this has to do with the "j<k" piece in the k loop being strictly less than j when j equals 20, but any other trial and error combination of indices or inequalities hasn't worked.. is there a way I can remedy this situation using this kind of solution alone without any added complexity?
I think the following will help you:
<!DOCTYPE html>
<html>
<body>
<button type="button" onclick="xloop()">Accept</button> <br>
<p id="xloops"></p>
<script>
function xloop() {
let text = "";
for (let j = 0; j < 20; j++) {
let text2 = "";
for (let k = 0; k <= j; k++) {
//row
text2 += "X";
}
//line
text += `${text2}` + "<br>"
}
document.getElementById("xloops").innerHTML = text;
}
</script>
</body>
</html>