在Javascript中,基于给定高度具有空中心的三角形

在Javascript中,基于给定高度具有空中心的三角形,javascript,html,algorithm,triangular,triangle,Javascript,Html,Algorithm,Triangular,Triangle,我最近有一个任务,就是根据用户给定的随机高度来做一个空三角形 它必须看起来像那样,但用户是可以设置高度的人。 我的脚本现在看起来像这样: var hgh=prompt(“设置三角形的高度:”); 文件。填写(“”); 对于(var i=1;i而言,问题在于这种情况: hgh实际上是一个字符串(因为提示符返回一个字符串)。因此“+”操作符在这里处理字符串,并将hgh和“1”连接起来,而不是添加这些值。如果输入“5”,(hgh+1)将导致“51”,而不是“6” 快速解决方案:将表达式重写为hgh-

我最近有一个任务,就是根据用户给定的随机高度来做一个空三角形

它必须看起来像那样,但用户是可以设置高度的人。
我的脚本现在看起来像这样:

var hgh=prompt(“设置三角形的高度:”);
文件。填写(“”);

对于(var i=1;i而言,问题在于这种情况:

hgh实际上是一个字符串(因为提示符返回一个字符串)。因此“+”操作符在这里处理字符串,并将hgh和“1”连接起来,而不是添加这些值。如果输入“5”,(hgh+1)将导致“51”,而不是“6”


快速解决方案:将表达式重写为hgh-i+1。没有字符串减法,因此(hgh-i)将hgh转换为一个数字并进行适当的减法。

我采用了稍微不同的方法,但在
pre
元素中呈现时,它似乎工作正常,而不是像上面那样直接写入页面

const三角形=()=>{
let pre=document.querySelector('pre');
let height=Number(提示('Set the triangle's height:'))| | false;
设maxheight=32;
//仅处理值大于1且小于33的有效整数。。。
如果(isNaN(高度)| |高度==假){
警惕(‘不是一个数字’);
返回false;
}
如果(高度<2){
警报(“给定高度太小”);
返回false;
}
如果(高度>最大高度){
警惕(“过高”);
返回false;
}
//hwp:中途点
让hwp;
//k:对于偶数三角形,将该值减去空格
设k=0;
//计算中间点
如果(高度%2==0){
hwp=高度/2;
k=1;
}否则{
hwp=(高度-1)/2;
}
//使用的字符
设c=String.fromCharCode(88);
设s=String.fromCharCode(32);
设n=String.fromCharCode(10);
for(设i=0,j=0;i
pre{margin:1rem;}
var hgh = prompt("Set the triangle's height: ");

  document.write("<center><pre>");
  for (var i = 1; i <= hgh ; i++) {
    var s = "";
    for (var j = 1; j <= (2 * hgh - 1); j++) {
      if (i != hgh ) {
        if (j == hgh + 1 - i || j == hgh - 1 + i) {
           s += "X";
        }
        else {
          s += " ";
        }
      }
      else {
        s += "X";
      }
    }
    document.write(s);
    document.write("<br>");
  }
  document.write("</pre></center>");
if (j == hgh + 1 - i ... )