In this shot, we will learn how to create an hourglass star pattern using JavaScript. This pattern is more complex than other patterns. The logic to create an hourglass pattern is creating a downside pyramid on an upside pyramid.
An hourglass star pattern looks like the image below:
let n = 5;// downside pyramidfor (let i = 0; i < n ; i++) {// printing spacesfor (let j = 0; j < i; j++) {process.stdout.write(' ');}// printing starfor (let k = 0; k < (n - i) * 2 - 1; k++) {process.stdout.write('*');}console.log();}// Upside pyramidfor (let i = 2; i <= n; i++) {// printing spacesfor (let j = 1; j <= n - i; j++) {process.stdout.write(' ')}// printing starfor (let k = 0; k < 2 * i - 1; k++) {process.stdout.write('*')}console.log();}
In line 3, we have our first outer for
loop, which will iterate over the height of the downside triangle (that is 5, n=5
).
In line 5, we have the first inner for
loop to print spaces for i
times, where i
is the outer loop iteration number. If i=0
, i.e., for the st
row, the number of spaces before the star is 0, for i=3
(4th row), the space is 3, and so on.
In line 6, the standard method of JavaScript is used to print the space (’ '). process.stdout.write()
will print the space.
In line 9, we have the second nested for
loop to print *
for (n - i) * 2 - 1
times, where i
is the current iteration number of the outer loop. If i=3
, i.e., for the 4th row after 3 spaces it will print 3 stars (5 - 3) * 2 - 1
.
In line 10, the standard method of JavaScript is used to print the space (*
). process.stdout.write()
will print the space.
In line 12, we used console.log()
with null
, as it will change to a new line. We can use process.stdout.write(’\n’)
to change the line.
In line 16, we have our outer for
loop, which will iterate from i=2
to i=n=5
. We are initializing i
from 2, as we need to skip the first row, which will print only one star in the middle. This is already done by the above pattern (downward pyramid)
In line 18, we have the first nested for
loop to print spaces for i+1
times, where i
is the outer loop iteration number. If i=3
, i.e., for the second row, the number of spaces before the star is 3, and so on.
In line 22, we have the second inner for
loop to print *
for 2 * i - 1
times, where i
is the current iteration number of the outer loop. If i=3
, i.e., for the second row, after 3 spaces it will print 5(2 * 3 - 1)
star.
In line 23, the standard method of JavaScript is used to print the space (*
). process.stdout.write()
will print the space.
In line 25, we used console.log()
with null
, as it will change to a new line. We can use process.stdout.write(’\n’)
to change the line.
We have completed the task of creating an hourglass star pattern in JavaScript.