金字塔的星星Javascript

时间:2016-12-17 11:05:49

标签: javascript for-loop

我怎么能创建明星的金字塔,每行增加 2

*
* * *
* * * * *
* * * * * * *

我目前的代码:

for (var x = 0; x < 5; x++) {
    for (var y = 0; y <= x; y = y + 1) {
        document.write(" * ");
    }
    document.write("<br>");
}

4 个答案:

答案 0 :(得分:4)

只需将循环增加2即可。

for(var i = 1; i < 20; i += 2) {
    console.log( Array(i).fill('*').join(' ') );
}

否则只需在你的循环中加倍

for(var i = 0; i < 10; i++) {
    console.log( Array(i*2 + 1).fill('*').join(' ') );
}

您可能还需要polyfill Array.fill,具体取决于您的目标。

答案 1 :(得分:2)

其他答案每次都会重新创建整行。这个解决方案只是每次扩展行以获得另一个星。

&#13;
&#13;
function pyramid(n) {
  let result = '', str = '', add = '*';
  for (var i = 0; i < n; i++) {
    str += add;
    add = ' *';
    if (!(i % 2)) result += str + '\n';
  }
  return result;
}

console.log(pyramid(5));
&#13;
&#13;
&#13;

答案 2 :(得分:0)

你可以这样做。

&#13;
&#13;
function generate() {
    var totalNumberofRows = 5;
    var output="";
    for (var i = 1; i <= totalNumberofRows; i++) {
      for (var j = 1; j <= i; j++) {
        if(j==1)
          output+="*";
        else
          output+="     "+ "*" + "     "+ "*";
  }
  console.log(output);
      output="";
   }
}  
generate()
&#13;
&#13;
&#13;

答案 3 :(得分:0)

希望这对你也有好处....

    $(document).ready(function(){

    var NumberofRows = 5,arr;
    for (var i = 1; i <= NumberofRows; i++) {
        pyramid = [];
        for (var j = 1; j <= i; j++) {
             pyramid.push('*');               
        }
        console.log(pyramid.join(" ") + "\n");
      }    
});

``