Bird
Raised Fist0
DSA Typescriptprogramming~20 mins

Array Insertion at Middle Index in DSA Typescript - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Array Insertion Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output after inserting an element in the middle?
Consider the following TypeScript code that inserts the number 99 into the middle of an array. What will be the printed array after the insertion?
DSA Typescript
const arr = [10, 20, 30, 40, 50];
const middleIndex = Math.floor(arr.length / 2);
arr.splice(middleIndex, 0, 99);
console.log(arr);
A[10, 20, 30, 40, 99, 50]
B[10, 20, 30, 99, 40, 50]
C[10, 20, 99, 30, 40, 50]
D[99, 10, 20, 30, 40, 50]
Attempts:
2 left
💡 Hint
Remember that Math.floor(arr.length / 2) gives the middle index for insertion.
❓ Predict Output
intermediate
2:00remaining
What is the output after inserting multiple elements in the middle?
Given the following TypeScript code, what will be the final array printed?
DSA Typescript
const arr = [1, 2, 3, 4];
const mid = Math.floor(arr.length / 2);
arr.splice(mid, 0, 99, 100);
console.log(arr);
A[1, 2, 99, 100, 3, 4]
B[99, 100, 1, 2, 3, 4]
C[1, 2, 3, 99, 100, 4]
D[1, 99, 100, 2, 3, 4]
Attempts:
2 left
💡 Hint
Check where the middle index is and how splice inserts multiple elements.
🔧 Debug
advanced
2:00remaining
Why does this insertion code not insert at the middle?
The following code is intended to insert 42 into the middle of the array, but it does not work as expected. What is the problem?
DSA Typescript
const arr = [5, 10, 15, 20, 25];
const mid = arr.length / 2;
arr.splice(mid, 0, 42);
console.log(arr);
A42 is not a valid element type for splice insertion.
Bmid is a float, splice expects an integer index, causing unexpected behavior.
CThe array is empty, so insertion fails silently.
Dsplice removes elements instead of inserting because second argument is zero.
Attempts:
2 left
💡 Hint
Check the type and value of mid before using it in splice.
🧠 Conceptual
advanced
2:00remaining
What is the time complexity of inserting an element in the middle of an array?
Consider an array of size n. What is the time complexity of inserting an element at the middle index using splice?
AO(n) because elements after the insertion point must be shifted.
BO(1) because splice inserts directly at the index.
CO(log n) because the array is split and merged.
DO(n^2) because all elements are copied twice.
Attempts:
2 left
💡 Hint
Think about what happens to elements after the insertion point.
🚀 Application
expert
3:00remaining
After multiple insertions at the middle, what is the final array?
Starting with an empty array, the following insertions are done in order: 1. Insert 1 at middle 2. Insert 2 at middle 3. Insert 3 at middle 4. Insert 4 at middle What is the final array?
DSA Typescript
const arr: number[] = [];
function insertMiddle(val: number) {
  const mid = Math.floor(arr.length / 2);
  arr.splice(mid, 0, val);
}
insertMiddle(1);
insertMiddle(2);
insertMiddle(3);
insertMiddle(4);
console.log(arr);
A[2, 4, 3, 1]
B[1, 2, 3, 4]
C[3, 1, 4, 2]
D[4, 2, 1, 3]
Attempts:
2 left
💡 Hint
Trace each insertion step by step, updating the array each time.

Practice

(1/5)
1. What does inserting an element at the middle index of an array mean?
easy
A. Adding the element exactly in the center position of the array
B. Adding the element at the start of the array
C. Adding the element at the end of the array
D. Replacing the middle element with a new element

Solution

  1. Step 1: Understand array indexing

    Arrays have positions starting from 0 to length-1. The middle index is usually length/2 (rounded down).
  2. Step 2: Define insertion at middle

    Inserting at middle means placing the new element at this middle index, shifting elements after it to the right.
  3. Final Answer:

    Adding the element exactly in the center position of the array -> Option A
  4. Quick Check:

    Middle insertion = center position [OK]
Hint: Middle index = array length divided by 2 [OK]
Common Mistakes:
  • Confusing insertion with replacement
  • Inserting at start or end instead of middle
  • Not shifting elements after insertion
2. Which of the following TypeScript code snippets correctly inserts the value 99 at the middle index of array arr?
easy
A. arr.unshift(99);
B. arr.push(99);
C. arr.splice(Math.floor(arr.length / 2), 0, 99);
D. arr[ Math.floor(arr.length / 2) ] = 99;

Solution

  1. Step 1: Understand splice method

    splice(index, 0, value) inserts value at index without removing elements.
  2. Step 2: Check other options

    push adds at end, unshift adds at start, direct assignment replaces element.
  3. Final Answer:

    arr.splice(Math.floor(arr.length / 2), 0, 99); -> Option C
  4. Quick Check:

    splice with 0 delete count inserts [OK]
Hint: Use splice(index, 0, value) to insert without removal [OK]
Common Mistakes:
  • Using push or unshift instead of splice
  • Replacing element instead of inserting
  • Incorrect index calculation
3. What is the output of the following TypeScript code?
const arr = [10, 20, 30, 40];
arr.splice(Math.floor(arr.length / 2), 0, 25);
console.log(arr);
medium
A. [10, 20, 30, 25, 40]
B. [10, 20, 25, 30, 40]
C. [10, 25, 20, 30, 40]
D. [25, 10, 20, 30, 40]

Solution

  1. Step 1: Calculate middle index

    arr.length = 4, middle index = Math.floor(4/2) = 2.
  2. Step 2: Insert 25 at index 2

    splice(2, 0, 25) inserts 25 before element at index 2 (which is 30), shifting elements right.
  3. Final Answer:

    [10, 20, 25, 30, 40] -> Option B
  4. Quick Check:

    Inserted 25 at index 2 [OK]
Hint: Middle index = floor(length/2), splice inserts at that index [OK]
Common Mistakes:
  • Inserting at wrong index
  • Replacing element instead of inserting
  • Misunderstanding splice parameters
4. What is the output of the following TypeScript code?
const nums = [1, 2, 3, 4, 5];
const mid = nums.length / 2;
nums.splice(mid, 0, 50);
console.log(nums);
medium
A. [1, 50, 2, 3, 4, 5]
B. [1, 2, 3, 4, 5, 50]
C. [1, 2, 3, 50, 4, 5]
D. [1, 2, 50, 3, 4, 5]

Solution

  1. Step 1: Check mid calculation

    nums.length = 5, mid = 5 / 2 = 2.5 (a float).
  2. Step 2: Understand splice behavior

    splice coerces 2.5 to integer 2 (ToInteger(2.5) = 2). Inserts 50 at index 2, shifting 3,4,5 right: [1, 2, 50, 3, 4, 5].
  3. Final Answer:

    [1, 2, 50, 3, 4, 5] -> Option D
  4. Quick Check:

    Float index coerced to 2 [OK]
Hint: Always floor length/2 for middle index [OK]
Common Mistakes:
  • Confusing with unshift (insert at start)
  • Confusing with push (append at end)
  • Inserting at index 3 instead of 2
5. Given an array arr = [5, 10, 15, 20, 25], write a TypeScript function insertMiddle that inserts a given value exactly in the middle of the array. What will be the array after calling insertMiddle(arr, 12)?
hard
A. [5, 10, 12, 15, 20, 25]
B. [5, 10, 15, 12, 20, 25]
C. [12, 5, 10, 15, 20, 25]
D. [5, 10, 15, 20, 25, 12]

Solution

  1. Step 1: Calculate middle index for odd length

    arr.length = 5, middle index = Math.floor(5/2) = 2.
  2. Step 2: Insert 12 at index 2

    Using splice(2, 0, 12) inserts 12 before element at index 2 (which is 15), shifting elements right.
  3. Final Answer:

    [5, 10, 12, 15, 20, 25] -> Option A
  4. Quick Check:

    Inserted 12 at middle index 2 [OK]
Hint: Use Math.floor(length/2) for middle insertion [OK]
Common Mistakes:
  • Inserting at wrong index for odd length
  • Appending instead of inserting
  • Replacing element instead of inserting
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard