Bird
Raised Fist0
Javascriptprogramming~5 mins

Common array operations in Javascript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Common array operations
O(n)
Understanding Time Complexity

When working with arrays, it is important to know how long common operations take as the array grows.

We want to understand how the time to do things like adding, searching, or removing items changes with array size.

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);

// Find an item
const found = arr.includes(3);

// Remove first item
arr.shift();
    

This code adds an item to the end, checks if an item exists, and removes the first item from the array.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Searching through the array with includes and shifting elements with shift.
  • How many times: includes checks each element until it finds a match or reaches the end; shift moves all elements one step forward.
How Execution Grows With Input

Explain the growth pattern intuitively.

Input Size (n)Approx. Operations
10Push: 1, Includes: up to 10, Shift: up to 9
100Push: 1, Includes: up to 100, Shift: up to 99
1000Push: 1, Includes: up to 1000, Shift: up to 999

Pattern observation: Adding at the end stays quick, but searching and removing from the front take longer as the array grows.

Final Time Complexity

Time Complexity: O(n)

This means the time to search or remove from the front grows roughly in direct proportion to the array size.

Common Mistake

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

[OK] Correct: Adding at the end is fast, but removing from the front or searching requires checking or moving many items, so it takes longer as the array grows.

Interview Connect

Understanding how common array operations scale helps you write efficient code and explain your choices clearly in interviews.

Self-Check

"What if we used a linked list instead of an array? How would the time complexity of removing the first item change?"

Practice

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

Solution

  1. Step 1: Understand array methods for adding/removing items

    push() adds items to the end, pop() removes from the end, shift() removes from the start, unshift() adds to the start.
  2. Step 2: Identify the method that adds to the end

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

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

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

Solution

  1. Step 1: Recall array methods for removing items

    pop() removes last item, shift() removes first item, push() adds last, unshift() adds first.
  2. Step 2: Choose method that removes first item

    shift() removes the first item from the array.
  3. Final Answer:

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

    shift() removes first item [OK]
Hint: shift() removes first, pop() removes last [OK]
Common Mistakes:
  • Using pop() to remove first item
  • Using push() or unshift() to remove items
  • Confusing shift() with unshift()
3. What is the output of the following code?
const fruits = ['apple', 'banana', 'cherry'];
const index = fruits.indexOf('banana');
if (index !== -1) {
  fruits.splice(index, 1);
}
console.log(fruits);
medium
A. ['apple', 'banana', 'cherry']
B. ['banana', 'cherry']
C. ['apple']
D. ['apple', 'cherry']

Solution

  1. Step 1: Find the index of 'banana' in the array

    indexOf('banana') returns 1 because 'banana' is at position 1.
  2. Step 2: Remove 'banana' using splice

    splice(1, 1) removes 1 item at index 1, so 'banana' is removed.
  3. Final Answer:

    ['apple', 'cherry'] -> Option D
  4. Quick Check:

    Removed 'banana' from array [OK]
Hint: indexOf finds position, splice removes item at that position [OK]
Common Mistakes:
  • Not checking index before splice
  • Using splice with wrong index
  • Expecting splice to return new array
4. The following code is intended to remove 'orange' from the array, but it doesn't work as expected. What is the error?
const colors = ['red', 'green', 'blue'];
const index = colors.indexOf('orange');
colors.splice(index, 1);
console.log(colors);
medium
A. indexOf returns -1 if item not found, causing splice to remove last item
B. splice() is used incorrectly; it should be pop()
C. indexOf should be replaced with includes()
D. splice() cannot remove items by index

Solution

  1. Step 1: Check indexOf result for 'orange'

    Since 'orange' is not in the array, indexOf returns -1.
  2. Step 2: Understand splice behavior with negative index

    splice(-1, 1) removes the last item, so 'blue' is removed unexpectedly.
  3. Final Answer:

    indexOf returns -1 if item not found, causing splice to remove last item -> Option A
  4. Quick Check:

    Check index before splice to avoid removing wrong item [OK]
Hint: Check indexOf result before splice to avoid errors [OK]
Common Mistakes:
  • Not checking if index is -1
  • Using includes() instead of indexOf for index
  • Assuming splice can't remove by index
5. Given an array nums = [1, 2, 3, 4, 5], which code snippet correctly removes all even numbers from the array?
hard
A. nums = nums.filter(n => n % 2 === 0);
B. nums = nums.filter(n => n % 2 !== 0);
C. nums.splice(1, 2);
D. nums.pop(); nums.pop();

Solution

  1. Step 1: Understand filtering even numbers

    To remove even numbers, keep only numbers where n % 2 !== 0 (odd numbers).
  2. Step 2: Check each option

    nums.filter(n => n % 2 !== 0) keeps odd numbers, removing all evens. nums.filter(n => n % 2 === 0) keeps evens. nums.splice(1, 2) removes items at fixed indexes. nums.pop() twice removes only the last two items.
  3. Final Answer:

    nums = nums.filter(n => n % 2 !== 0); -> Option B
  4. Quick Check:

    filter odd numbers to remove even [OK]
Hint: Use filter with condition to keep desired items [OK]
Common Mistakes:
  • Using filter condition backwards
  • Using splice without index knowledge
  • Using pop to remove specific items
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