如何让这个三角形三角形垂直反射?

时间:2016-06-02 09:33:03

标签: javascript

for(var i = 5; i > 0; i--){
    var th = "";
    for(var k = i - 1; k > 0; k--) {
        th += " ";
    }
    th += ("a");

    for(var j = 5 - i; j > 0; j--){
        th += ("a");
    }
    console.log(th);
}

我想反映它,所以它看起来像一个等腰三角形。我得到了大部分,但最后两行太长了。第4行第1行,第5行第2行。这是我的尝试:

for(var i = 5; i > 0; i--){
    var th = "";
    for(var k = i - 1; k > 0; k--) {
        th += " ";
    }
    th += ("a");

    for(var j = 5 - i; j > 0; j--){
        th += ("a");
        for(var h = th.length; h > th.length - j; h--){
            th += ("a");
        }
    }
    console.log(th);
}

3 个答案:

答案 0 :(得分:1)

以下是使用String.repeat函数的简短解决方案:

var char = "a", level = 5, i = 1, step;
for (; i <= level; i++) {
    step = (i == 1)? i : ((!step)? i + 2 : step + 2);
    console.log(" ".repeat(level - i) + char.repeat(step));
}

输出:

    a
   aaa
  aaaaa
 aaaaaaa
aaaaaaaaa

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat

答案 1 :(得分:0)

试试这个。我保存每个输出,然后以相反的顺序显示它。

&#13;
&#13;
 data {searchvalue: searchdata, table_name:'muktijuddha_vatha_application' }
&#13;
&#13;
&#13;

答案 2 :(得分:0)

以最简单的方式撰写,它可以帮到你

var numOfLines=10;
var printChar='a';
var printString=printChar;
for(var i=0;i<numOfLines;i++){
   var numOfSpaces = numOfLines - i;
   var spaces = "";
   for (var j = 0; j < numOfSpaces; j++) {
            spaces += " ";
        }
  console.log(spaces + printString + spaces);
  printString += printChar + printChar;
}

https://jsfiddle.net/4csmqmeu/