storieasy-logo

Most Asked JavaScript Star and Number Patterns

jenish-mandani

Jenish Mandani

23 Feb 2026

|

60 min to read

javascript-pattern

JavaScript pattern programs

pattern programs

star pattern

number pattern

nested loop pattern logic

Learn how to solve JavaScript star and number pattern problems step-by-step. Includes most asked interview patterns with logic, thinking strategy, and complete code examples for beginners.

How to Think Before Writing Pattern Code

Before coding, always follow this structure:

Step 1: Count Rows

How many rows are printed?

Step 2: Identify Columns

How many items per row?

Step 3: Identify Pattern Formula

  • Increasing? → j <= i
  • Decreasing? → j <= rows - i
  • Pyramid? → 2*i - 1
  • Spaces? → rows - i

Step 4: Use Nested Loop Structure

1for (let i = 1; i <= rows; i++) {
2    let pattern = "";
3    for (let j = 1; j <= something; j++) {
4        pattern += "something";
5    }
6    console.log(pattern);
7}

PART 1: STAR PATTERNS

1 Right Triangle Pattern

Output:

1*
2**
3***
4****
5*****

Step-by-Step Thinking

  • Rows = 5
  • Stars in each row = row number
  • Formula: j <= i
1let rows = 5;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5    for (let j = 1; j <= i; j++) {
6        pattern += "*";
7    }
8    console.log(pattern);
9}

2 Inverted Right Triangle

1*****
2****
3***
4**
5*

Logic:

  • Stars decrease each row
  • Formula: j <= rows - i + 1
1let rows = 5;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5    for (let j = 1; j <= rows - i + 1; j++) {
6        pattern += "*";
7    }
8    console.log(pattern);
9}

3 Right Aligned Triangle

1    *
2   **
3  ***
4 ****
5*****

Logic:

  • Spaces = rows - i
  • Stars = i
1let rows = 5;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5
6    for (let s = 1; s <= rows - i; s++) {
7        pattern += " ";
8    }
9
10    for (let j = 1; j <= i; j++) {
11        pattern += "*";
12    }
13
14    console.log(pattern);
15}

4 Full Pyramid Pattern (Very Important)

1    *
2   ***
3  *****
4 *******
5*********

Deep Logic:

  • Spaces = rows - i
  • Stars = 2*i - 1

Why 2*i - 1?
Because:
Row 1 → 1
Row 2 → 3
Row 3 → 5
Odd numbers increase by 2.

1let rows = 5;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5
6    for (let s = 1; s <= rows - i; s++) {
7        pattern += " ";
8    }
9
10    for (let j = 1; j <= 2 * i - 1; j++) {
11        pattern += "*";
12    }
13
14    console.log(pattern);
15}

5 Inverted Pyramid

1*********
2 *******
3  *****
4   ***
5    *

Logic:

Reverse the pyramid.

1let rows = 5;
2
3for (let i = rows; i >= 1; i--) {
4    let pattern = "";
5
6    for (let s = 1; s <= rows - i; s++) {
7        pattern += " ";
8    }
9
10    for (let j = 1; j <= 2 * i - 1; j++) {
11        pattern += "*";
12    }
13
14    console.log(pattern);
15}

6 Diamond Pattern (Combination Pattern)

Combine:

  • Pyramid
  • Inverted Pyramid (excluding middle duplicate)
1let rows = 5;
2
3// Upper Pyramid
4for (let i = 1; i <= rows; i++) {
5    let pattern = "";
6
7    for (let s = 1; s <= rows - i; s++) pattern += " ";
8    for (let j = 1; j <= 2 * i - 1; j++) pattern += "*";
9
10    console.log(pattern);
11}
12
13// Lower Pyramid
14for (let i = rows - 1; i >= 1; i--) {
15    let pattern = "";
16
17    for (let s = 1; s <= rows - i; s++) pattern += " ";
18    for (let j = 1; j <= 2 * i - 1; j++) pattern += "*";
19
20    console.log(pattern);
21}

7 Hollow Square

1*****
2*   *
3*   *
4*   *
5*****

Logic:

Print star if:

  • First row
  • Last row
  • First column
  • Last column
1let rows = 5;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5
6    for (let j = 1; j <= rows; j++) {
7        if (i === 1 || i === rows || j === 1 || j === rows) {
8            pattern += "*";
9        } else {
10            pattern += " ";
11        }
12    }
13
14    console.log(pattern);
15}

PART 2: NUMBER PATTERNS

8 Number Triangle

11
212
3123
41234
512345
1let rows = 5;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5    for (let j = 1; j <= i; j++) {
6        pattern += j;
7    }
8    console.log(pattern);
9}

9 Reverse Number Triangle

112345
21234
3123
412
51
1let rows = 5;
2
3for (let i = rows; i >= 1; i--) {
4    let pattern = "";
5    for (let j = 1; j <= i; j++) {
6        pattern += j;
7    }
8    console.log(pattern);
9}

10 Floyd’s Triangle (Frequently Asked)

11
22 3
34 5 6
47 8 9 10

Important Concept:

Use external counter variable.

1let rows = 4;
2let num = 1;
3
4for (let i = 1; i <= rows; i++) {
5    let pattern = "";
6    for (let j = 1; j <= i; j++) {
7        pattern += num + " ";
8        num++;
9    }
10    console.log(pattern);
11}

11 Palindrome Number Pyramid

11
2121
312321
41234321
1let rows = 4;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5
6    for (let j = 1; j <= i; j++) {
7        pattern += j;
8    }
9
10    for (let j = i - 1; j >= 1; j--) {
11        pattern += j;
12    }
13
14    console.log(pattern);
15}

12 0-1 Pattern

11
201
3101
40101
1let rows = 4;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5    for (let j = 1; j <= i; j++) {
6        pattern += (i + j) % 2;
7    }
8    console.log(pattern);
9}

13 Pascal’s Triangle

11
21 1
31 2 1
41 3 3 1
51 4 6 4 1
1let rows = 5;
2
3for (let i = 0; i < rows; i++) {
4    let pattern = "";
5    let num = 1;
6
7    for (let s = 1; s <= rows - i; s++) {
8        pattern += " ";
9    }
10
11    for (let j = 0; j <= i; j++) {
12        pattern += num + " ";
13        num = num * (i - j) / (j + 1);
14    }
15
16    console.log(pattern);
17}

Mathematical formula for that :

Each number =

nCr = n! / (r! (n-r)!)

Better optimized logic:

value = value * (i - j) / j

14 Hollow Pyramid

1    *
2   * *
3  *   *
4 *     *
5*********
1let rows = 5;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5
6    // Spaces
7    for (let s = 1; s <= rows - i; s++) {
8        pattern += " ";
9    }
10
11    for (let j = 1; j <= 2 * i - 1; j++) {
12        if (i === 1 || i === rows || j === 1 || j === 2 * i - 1) {
13            pattern += "*";
14        } else {
15            pattern += " ";
16        }
17    }
18
19    console.log(pattern);
20}

15 Binary Pyramid

1   1
2  101
3 10101
41010101

Binary alternates:
Use (i + j) % 2

1let rows = 4;
2
3for (let i = 1; i <= rows; i++) {
4    let pattern = "";
5
6    for (let s = 1; s <= rows - i; s++) pattern += " ";
7
8    for (let j = 1; j <= 2 * i - 1; j++) {
9        pattern += (i + j) % 2;
10    }
11
12    console.log(pattern);
13}

Final Interview Advice

If interviewer gives new pattern:

  1. Draw it
  2. Separate:
    • Left part
    • Middle part
    • Right part
  3. Identify:
    • Increasing?
    • Decreasing?
    • Mirror?
    • Space formula?
  4. Convert to nested loops.

Subscribe to our Newsletter

Provide your email to get email notification when we launch new products or publish new articles

email

Share with your friends: