In this shot, we will learn how to create a diamond star pattern using JavaScript. This pattern is complex among other patterns. The logic to create a diamond pattern is combining the logic of the upside pyramid and downside pyramid.
A diamond star pattern looks like the image below:
let n = 5;// Upside pyramidfor (let i = 1; 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();}// downside pyramidfor (let i = 1; i <= n - 1; i++) {// printing spacesfor (let j = 0; j < i; j++) {process.stdout.write(' ');}// printing starfor (let k = (n - i) * 2 - 1; k > 0; k--) {process.stdout.write('*');}console.log();}
height(rows)
of the upside triangle (i.e., 5) and one less than the height of the downside triangle (i.e., 4), so the total rows(height)
for the diamond is 9
.In line 3, we have our outer for
loop, which will iterate over the height of upside triangle (n=5
).
In line 5, we have our first nested for
loop to print spaces for n-i
times, where i
is the outer loop iteration number. If i=3
, i.e., for the third row, the number of spaces before star is 2, and so on.
In line 9, 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 third row, after one space it will print 5 (2 * 3 - 1) star.
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 have our second outer for
loop, which will iterate over one less than the height of the downside pyramid (that is, n-1 = 4 times
, here n=5
).
In line 18, our first inner for
loop prints spaces for i
times, where i
is the outer loop iteration number. If i=3
, i.e., for the third row, the number of space before the star is 3
, for i=4
the space is 4
, and so on.
In line 19, the standard method of JavaScript is used to print the space (" "). process.stdout.write()
will print the space.
In line 22, the second nested for
loop prints *
for 2 * (n - i) - 1
times, where i
is the current iteration number of outer loop. If i=3
, i.e., for the third row, after 3 spaces it will print 3
star (2 * (5 - 3) - 1).
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 to create a diamond star pattern in JavaScript.