Bird
Raised Fist0
Javascriptprogramming~5 mins

Modifying arrays in Javascript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Modifying arrays
O(n)
Understanding Time Complexity

When we change items in an array, the time it takes can grow as the array gets bigger.

We want to know how the work needed changes when we add or remove items.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


const arr = [1, 2, 3, 4, 5];

// Add an item at the end
arr.push(6);

// Remove the first item
arr.shift();

// Insert an item at index 2
arr.splice(2, 0, 10);
    

This code adds, removes, and inserts items in an array at different positions.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Moving elements to make space or close gaps when inserting or removing.
  • How many times: Depends on how many elements need to shift after the change.
How Execution Grows With Input

When adding at the end, work stays about the same no matter the size.

When removing or inserting near the start, many elements must move, so work grows with array size.

Input Size (n)Approx. Operations
10Few to 10 moves
100Few to 100 moves
1000Few to 1000 moves

Pattern observation: Inserting or removing at the start or middle means more moves as array grows; adding at the end stays quick.

Final Time Complexity

Time Complexity: O(n)

This means the time to insert or remove items can grow directly with the number of elements in the array.

Common Mistake

[X] Wrong: "Adding or removing items anywhere in an array always takes the same time."

[OK] Correct: Removing or inserting at the start or middle requires shifting many elements, so it takes longer as the array grows.

Interview Connect

Understanding how array changes affect time helps you explain your code choices clearly and shows you know how data structures work behind the scenes.

Self-Check

"What if we used a linked list instead of an array? How would the time complexity for inserting or removing items change?"

Practice

(1/5)
1. Which method adds one or more elements to the end of a JavaScript array?
easy
A. push()
B. pop()
C. shift()
D. unshift()

Solution

  1. Step 1: Understand array methods for adding elements

    push() adds elements to the end, unshift() adds to the start.
  2. Step 2: Identify the method that adds to the end

    push() is the method that adds elements at the end of the array.
  3. Final Answer:

    push() -> Option A
  4. Quick Check:

    Adding at end = push() [OK]
Hint: push() adds at end, unshift() adds at start [OK]
Common Mistakes:
  • Confusing push() with pop()
  • Using shift() to add elements
  • Thinking unshift() adds at end
2. Which of the following is the correct syntax to remove the first element from an array arr?
easy
A. arr.pop()
B. arr.shift()
C. arr.unshift()
D. arr.push()

Solution

  1. Step 1: Recall methods that remove elements

    pop() removes from end, shift() removes from start.
  2. Step 2: Identify method to remove first element

    shift() removes the first element of the array.
  3. Final Answer:

    arr.shift() -> Option B
  4. Quick Check:

    Remove first element = shift() [OK]
Hint: shift() removes first, pop() removes last [OK]
Common Mistakes:
  • Using pop() to remove first element
  • Using unshift() which adds elements
  • Confusing push() with removal methods
3. What will be the output of the following code?
let arr = [1, 2, 3, 4];
arr.splice(1, 2, 8, 9);
console.log(arr);
medium
A. [1, 8, 9, 4]
B. [1, 2, 3, 4]
C. [8, 9, 4]
D. [1, 8, 9]

Solution

  1. Step 1: Understand splice parameters

    splice(1, 2, 8, 9) means start at index 1, remove 2 elements, then insert 8 and 9.
  2. Step 2: Apply splice on array

    Original array: [1, 2, 3, 4]. Remove elements at index 1 and 2 (2 and 3), then insert 8 and 9 at index 1. Result: [1, 8, 9, 4].
  3. Final Answer:

    [1, 8, 9, 4] -> Option A
  4. Quick Check:

    splice removes and inserts = [1, 8, 9, 4] [OK]
Hint: splice(start, deleteCount, items...) edits array in place [OK]
Common Mistakes:
  • Confusing splice with slice
  • Not removing correct elements
  • Forgetting splice inserts new items
4. The following code tries to remove the element '3' from the array but does not work as expected. What is the error?
let arr = [1, 2, 3, 4];
arr.splice(3, 1);
console.log(arr);
medium
A. The index 3 is out of range for removal
B. The splice method is used incorrectly; it should be pop()
C. The index 3 removes the wrong element, should be 2
D. splice cannot remove elements from arrays

Solution

  1. Step 1: Identify the element to remove and its index

    The element '3' is at index 2 in the array [1, 2, 3, 4].
  2. Step 2: Check the splice call

    The code calls arr.splice(3, 1), which removes the element at index 3 (which is 4), not 3.
  3. Final Answer:

    The index 3 removes the wrong element, should be 2 -> Option C
  4. Quick Check:

    Remove '3' at index 2, not 3 [OK]
Hint: Check array indexes carefully before splice [OK]
Common Mistakes:
  • Using wrong index for splice
  • Confusing pop() with splice()
  • Thinking splice can't remove elements
5. You have an array arr = [5, 10, 15, 20]. You want to replace the middle two elements with 12 and 18 using a single method call. Which code correctly does this?
hard
A. arr.splice(2, 2, 12, 18);
B. arr.splice(0, 2, 12, 18);
C. arr.splice(1, 1, 12, 18);
D. arr.splice(1, 2, 12, 18);

Solution

  1. Step 1: Identify indexes of middle two elements

    Array is [5, 10, 15, 20]. Middle two elements are at indexes 1 and 2 (10 and 15).
  2. Step 2: Use splice to replace these elements

    Call arr.splice(1, 2, 12, 18) to start at index 1, remove 2 elements, and insert 12 and 18.
  3. Final Answer:

    arr.splice(1, 2, 12, 18); -> Option D
  4. Quick Check:

    Replace middle two with splice(1,2,12,18) [OK]
Hint: splice(startIndex, countToRemove, ...newItems) replaces items [OK]
Common Mistakes:
  • Wrong start index
  • Removing too few or too many elements
  • Using splice with wrong parameters
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