Data Structure and Algorithm
Pattern Printing

Pattern Printing in JavaScript

Pattern printing is a fundamental concept in programming that allows developers to practice and improve their skills with loops and nested iterations. It involves creating visually structured outputs such as shapes, numbers, or symbols using loops, making it an essential exercise in understanding the basics of algorithm design.


Square Star Pattern

Description: Prints a square pattern of stars of size n.

function squarePattern(n) {
    for (let row = 0; row < n; row++) {
        let pattern = '';
        for (let column = 0; column < n; column++) {
            pattern += '* ';
        }
        console.log(pattern);
    }
}
 
squarePattern(4);

Output:

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

Right-Angled Triangle Pattern

Description: Prints a right-angled triangle pattern of stars.

function trianglePattern(n) {
    let pattern = '';
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < i + 1; j++) {
            pattern += '* ';
        }
        console.log(pattern);
        pattern = '';
    }
}
 
trianglePattern(4);

Output:

* 
* * 
* * * 
* * * * 

Inverted Right-Angled Triangle Pattern

Description: Prints an inverted right-angled triangle pattern of stars.

function invertedTrianglePattern(n) {
    let pattern = '';
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < n - i; j++) {
            pattern += '* ';
        }
        console.log(pattern);
        pattern = '';
    }
}
 
invertedTrianglePattern(5);

Output:

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

Diamond Pattern

Description: Prints a diamond-shaped pattern of stars.

function diamondPattern(n) {
    let pattern = '';
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < n - i - 1; j++) {
            pattern += ' ';
        }
        for (let k = 0; k < 2 * i + 1; k++) {
            pattern += '*';
        }
        console.log(pattern);
        pattern = '';
    }
    for (let i = n - 2; i >= 0; i--) {
        for (let j = 0; j < n - i - 1; j++) {
            pattern += ' ';
        }
        for (let k = 0; k < 2 * i + 1; k++) {
            pattern += '*';
        }
        console.log(pattern);
        pattern = '';
    }
}
 
diamondPattern(5);

Output:

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

Pyramid Pattern

Description: Prints a pyramid pattern of stars.

function pyramidPattern(n) {
    let pattern = '';
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < n - i - 1; j++) {
            pattern += ' ';
        }
        for (let k = 0; k < 2 * i + 1; k++) {
            pattern += '*';
        }
        console.log(pattern);
        pattern = '';
    }
}
 
pyramidPattern(5);

Output:

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

Symmetrical Triangle Pattern

Description: Prints a symmetrical triangle pattern of stars.

function symmetricalTrianglePattern(n) {
    for (let i = 1; i <= 2 * n - 1; i++) {
        let stars = i <= n ? i : 2 * n - i;
        console.log('*'.repeat(stars));
    }
}
 
symmetricalTrianglePattern(5);

Output:

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

Extended Symmetrical Triangle Pattern

Description: Prints an extended symmetrical triangle pattern of stars.

function extendedSymmetricalTrianglePattern(n) {
    for (let i = 1; i <= 2 * n - 1; i++) {
        let stars = i <= n ? i : 2 * n - i;
        console.log('*'.repeat(stars));
    }
}
 
extendedSymmetricalTrianglePattern(5);

Output:

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

Number Triangle Pattern

Description: Prints a triangle of numbers incrementing in each row.

function numberTrianglePattern(n) {
    let number = '';
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < i + 1; j++) {
            number += j + 1;
        }
        console.log(number);
        number = '';
    }
}
 
numberTrianglePattern(5);

Output:

1
12
123
1234
12345

Repeated Number Triangle Pattern

Description: Prints a triangle of repeated numbers, increasing in each row.

function repeatedNumberTrianglePattern(n) {
    let number = '';
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < i + 1; j++) {
            number += i + 1;
        }
        console.log(number);
        number = '';
    }
}
 
repeatedNumberTrianglePattern(5);

Output:

1
22
333
4444
55555

Reverse Pyramid Pattern

Description: Prints a reverse pyramid pattern of stars.

function reversePyramidPattern(n) {
    let pattern = '';
    for (let i = n - 1; i >= 0; i--) {
        for (let j = 0; j < n - i - 1; j++) {
            pattern += ' ';
        }
        for (let k = 0; k < 2 * i + 1; k++) {
            pattern += '*';
        }
        console.log(pattern);
        pattern = '';
    }
}
 
reversePyramidPattern(5);

Output:

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