U.P.
U.P.

Reputation: 81

Pyramide of Stars Javascript

How could I create Pyramide of Stars that increase every row by 2 like that:

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

My currently code:

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

Upvotes: 1

Views: 261

Answers (5)

sangram
sangram

Reputation: 415

var maxStar = 9

for (let i = 1; i < 10; i++) {
    let half = maxStar-i
    var totalSpaces = ' '.repeat(half)
    process.stdout.write(totalSpaces)
    for (let j = 0; j < i; j++) {
       process.stdout.write('* ')
    }
    process.stdout.write('\n')
}

Upvotes: -1

Priya-Systematix
Priya-Systematix

Reputation: 119

Hope so this is also beneficial for you....

$(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");
      }    
});

``

Upvotes: 0

user663031
user663031

Reputation:

Other answers recreate the entire row each time. This solution just extends the row each time to have another star.

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));

Upvotes: 2

bitten
bitten

Reputation: 2543

It's possible just to increment in your loop by 2.

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

Otherwise just multiply inside your loop

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

You may also need to polyfill Array.fill depending on your target.

Upvotes: 4

Sibeesh Venu
Sibeesh Venu

Reputation: 21779

You can do like this.

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()

Upvotes: 0

Related Questions